创建查询以连接2个表1对1,没有任何共同点

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)

Gor*_*off 7

你需要一把钥匙才能加入.你可以使用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将返回所有行,而不管它们是否具有相同的行数或没有的.