gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 12:07:43 25 4
gpt4 key购买 nike

我有一个表 TAB_1,它有 230 行。

CREATE TABLE TAB_1 (audit_id bigint NOT NULL PRIMARY KEY)

我有另一个表 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)

这两个表没有任何共同之处。

我想编写一个查询,它将为我提供这 2 个表中的所有列 1 on 1(即 TAB_1 的第一行与 TAB_2 的第一行,TAB_1 的第二行与 TAB_2 的第二行等等)。该查询也将有 230 行。

我怎样才能做到这一点?

我尝试了这些查询,但它们得到的结果是 TAB_1 中的每一行乘以 TAB_2 中的每一行:
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

最佳答案

你需要一把 key 才能加入。您可以使用 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;

这假设排序基于第一列。 full outer join将返回所有行,无论它们的行数是否相同。

关于sql - 创建查询以 1 对 1 连接 2 个表,没有任何共同点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35638753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com