gpt4 book ai didi

mysql - 将两个键连接/合并为一个键并删除重复项

转载 作者:行者123 更新时间:2023-11-29 15:55:54 24 4
gpt4 key购买 nike

我想使用 SQL (Toad for Oracle) 合并两个表,将一个表中的一个键合并到主表的两个键,同时删除重复的条目。我想一个例子可以让你更好地理解我的问题:

数据框A:

    Key1 Key2 ColA 
1 2 1993
1 2 1992
1 4 1991
2 4 1990
2 5 1989
2 5 1988
3 5 1987
3 6 1986
3 6 1985

数据框B:

Key1&2  ColB
1 Adress1
1 Adress1
1 Adress1
2 Adress2
2 Adress2
3 Adress3
3 Adress3
3 Adress3
4 Adress4
4 Adress4
5 Adress5
6 Adress6
6 Adress6

所需的数据框:

Key1 Key2 ColA  ColB-1     ColB-2
1 2 1993 Adress1 Adress2
1 2 1992 Adress1 Adress2
1 4 1991 Adress1 Adress4
2 4 1990 Adress2 Adress4
2 5 1989 Adress2 Adress5
2 5 1988 Adress2 Adress5
3 5 1987 Adress3 Adress5
3 6 1986 Adress3 Adress6
3 6 1985 Adress3 Adress6

到目前为止我尝试使用以下语句:

SELECT *
FROM A
LEFT JOIN B ON A.key1=B.key1&2
LEFT JOIN B ON A.key2=B.key1&2

但是,正如我所解释的,因为数据帧 B 在其键中具有重复的行,所以在我的输出中也存在重复的行。希望它清楚。

谢谢

KS

最佳答案

这是你想要的吗?

SELECT A.*, B1.ColB, B2.ColB
FROM A LEFT JOIN
(SELECT DISTINCT key1&2, ColB
FROM B
) B1 ON A.key1 = B1.key1&2 LEFT JOIN
(SELECT DISTINCT key1&2, ColB
FROM B
) B2 ON A.key2 = B2.key1&2;

关于mysql - 将两个键连接/合并为一个键并删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56462266/

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