使用join的SQL语句

时间:2014-01-30 10:10:15

标签: sql sql-server join

我有这些表:

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

3 个答案:

答案 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类型之间的区别

Introduction to JOINs – Basic of JOINs

答案 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