首页 > 解决方案 > 如何加入 2 个不同 id 的表

问题描述

我进入了一个奇怪的环境

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

标签: sqlsql-serverjoin

解决方案


您只需要删除两个表之间不常见的 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

推荐阅读