srh*_*srh 3 sql sql-server join
我有一个表TAB_1,有230行.
CREATE TABLE TAB_1 (audit_id bigint NOT NULL PRIMARY KEY)
Run Code Online (Sandbox Code Playgroud)
我有另一个表TAB_2,也有230行.
CREATE TABLE TAB_2 (employee_id bigint NOT NULL PRIMARY KEY, first_name varchar(50) NOT NULL, last_name varchar(50) NOT NULL)
Run Code Online (Sandbox Code Playgroud)
这两个表都没有任何共同之处.
我想编写一个查询,它将为我提供这两个表1对1中的所有列(即TAB_1的第1行,第1行为TAB_2,第2行为TAB_1,第2行为TAB_2,依此类推).该查询也将有230行.
我怎样才能做到这一点?
我尝试了这些查询,但是在TAB_2中的每一行TAB_1中每行都会得到结果:
select a.audit_id, b.employee_id, b.first_name, b.last_name
from TAB_1 a inner join TAB_2 b on 1 = 1
select a.audit_id, b.employee_id, b.first_name, b.last_name
from TAB_1 a cross join TAB_2 b
Run Code Online (Sandbox Code Playgroud)
你需要一把钥匙才能加入.你可以使用row_number():
select t1.*, t2.*
from (select t1.*, row_number() over (order by audit_id) as seqnum
from tab_1 t1
) t1 full outer join
(select t2.*, row_number() over (order by employee_id) as seqnum
from tab_2 t2
) t2
on t1.seqnum = t2.seqnum;
Run Code Online (Sandbox Code Playgroud)
这假设排序基于第一列.在full outer join将返回所有行,而不管它们是否具有相同的行数或没有的.
| 归档时间: |
|
| 查看次数: |
7332 次 |
| 最近记录: |