我有这些表:
customer1表:
"Customer1" table:
--------------------------------
id | branch | company_id
--------------------------------
1 | typical | 1
2 | natural | 8
--------------------------------
顾客2
"Customer2" table:
-------------------------------
id | company | group_id
-------------------------------
1 | deux | 1
-------------------------------
Customer3
"Customer3" table:
-------------------------------
id | group
-------------------------------
1 | alpha
-------------------------------
现在,如何使用表格中的sql命令/语句库输出:
----------------------------
group | company | branch
----------------------------
alpha | deux | typical
答案 0 :(得分:3)
您可以尝试类似
的内容SELECT [group],
[company],
[branch]
FROm Customer1 c1 INNER JOIN
Customer2 c2 ON c1.company_id = c2.id INNER JOIN
Customer3 c3 ON c2.group_id = c3.id
为确保您始终显示所有值,您可能需要查看使用LEFT JOINS
像
这样的东西SELECT [group],
[company],
[branch]
FROm Customer1 c1 LEFT JOIN
Customer2 c2 ON c1.company_id = c2.id LEFT JOIN
Customer3 c3 ON c2.group_id = c3.id
这是一篇很好的文章,解释了各种JOIN类型之间的区别
答案 1 :(得分:1)
这应该是您正在寻找的 - 但是,如果表格具有相同ID的多个记录,那么这可能不是您要找的
SELECT C3.group, C2.company, C1.branch
FROm Customer1 c1 INNER JOIN
Customer2 c2 ON c1.company_id = c2.id INNER JOIN
Customer3 c3 ON c2.group_id = c3.id
答案 2 :(得分:0)
如果您运行联接,则您提供给我们的示例值不会导致任何匹配,因为ID不匹配。然而,这就是查询的样子
select [group], company, branch
from Customer3 c3
join Customer2 c2 on c3.ID = c2.group_id
join Customer1 c1 on c2.id = c1.company_id