首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何连接具有不同ids的两个表

如何连接具有不同ids的两个表
EN

Stack Overflow用户
提问于 2020-01-22 23:58:33
回答 3查看 56关注 0票数 0

我陷入了一个奇怪的环境中

代码语言:javascript
复制
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是不同的

联接将如下所示:

代码语言:javascript
复制
TableC
ID Field2 field3
1  IDB1  IDC1
1  IDB1  IDC2
2  IDB2  IDC3

我想要完成的是:

代码语言:javascript
复制
TableC
ID Field2 field3
1  IDB1  IDC1
1  IDB2  IDC2
2  IDB3  IDC3
3  IDB4  IDC4
3  IDB5  IDC5
4  IDB6  IDC6
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-01-23 01:00:05

您只需要删除id列,该列在两个表中并不常见,以避免重复:

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2020-01-23 00:00:57

嗯,你似乎想要在id上做一些算术运算的union all

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2020-01-23 01:24:33

一位同事建议这样做:

代码语言:javascript
复制
SELECT DISTINCT
    a.id, a.IDB, b.IDC
FROM
    tableA AS a
INNER JOIN
    tableB AS b
ON
    a.id = b.id

结果是

代码语言:javascript
复制
ID Field2 field3
1  IDB1  IDC1
1  IDB2  IDC2
2  IDB3  IDC3
3  IDB4  IDC4
3  IDB5  IDC5
4  IDB6  IDC6
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59863664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档