我陷入了一个奇怪的环境中
TableA
ID Field2 field3
1 Test1 IDB1
1 test1 IDB2
2 Test2 IDB3
TableB
ID Field2 field3
1 otherTest1 IDC1
1 othertest1 IDC2
2 otherTest2 IDC3对于每个IDB,我们都有一个IDC。IDB和IDC不同,但数量相同,目前唯一的关系是ID.,我如何连接/粘贴这些表?如果我尝试连接,显然它会“复制”行,因为IDB和IDC是不同的
联接将如下所示:
TableC
ID Field2 field3
1 IDB1 IDC1
1 IDB1 IDC2
2 IDB2 IDC3我想要完成的是:
TableC
ID Field2 field3
1 IDB1 IDC1
1 IDB2 IDC2
2 IDB3 IDC3
3 IDB4 IDC4
3 IDB5 IDC5
4 IDB6 IDC6发布于 2020-01-23 01:00:05
您只需要删除id列,该列在两个表中并不常见,以避免重复:
SELECT DISTINCT
a.fields, b.fields -- just don't use the id
FROM
tableA AS a
INNER JOIN
tableB AS b
ON
b.commonId = a.commonId发布于 2020-01-23 00:00:57
嗯,你似乎想要在id上做一些算术运算的union all:
select a.id, a.field2, a.field3
from tableA a
union all
select a.max_id + b.id, b.field2, b.field3
from tableB cross join
(select max(a2.id) as max_id from tableA a2) a发布于 2020-01-23 01:24:33
一位同事建议这样做:
SELECT DISTINCT
a.id, a.IDB, b.IDC
FROM
tableA AS a
INNER JOIN
tableB AS b
ON
a.id = b.id结果是
ID Field2 field3
1 IDB1 IDC1
1 IDB2 IDC2
2 IDB3 IDC3
3 IDB4 IDC4
3 IDB5 IDC5
4 IDB6 IDC6https://stackoverflow.com/questions/59863664
复制相似问题