【问题标题】:Understanding LEFT OUTER JOIN [duplicate]了解 LEFT OUTER JOIN [重复]
【发布时间】:2011-08-25 00:09:19
【问题描述】:

可能重复:
Three table join with joins other than INNER JOIN

我是 SQL 的初学者,我正在尝试了解如何使用连接子句。 我在两个表之间使用了左连接:

SELECT     Table1.Key1, Table2.Key2
FROM         Table1 LEFT OUTER JOIN
                  Table2 ON Table1.Key1 = Table2.Key2


我可以使用左连接(或右连接)检索仅在 Table1 中的键吗?

谢谢

【问题讨论】:

    标签: sql


    【解决方案1】:

    查看 Jeff Atwood 发布的各种 JOIN 类型的维恩图 - 了解 JOIN 的方式非常好且直观!

    A Visual Explanation of SQL Joins

    【讨论】:

    • 谢谢!它对我有很大帮助!
    • +1 这个链接对我也有帮助:)
    【解决方案2】:

    要具体回答您的问题,是的 - 您可以找出哪些键仅在 table1 中。当它们不在 table2 中时,table2 键为空

    SELECT Table1.Key1, Table2.Key2
    FROM Table1 
    LEFT OUTER JOIN Table2 ON Table1.Key1 = Table2.Key2
    WHERE Table2.Key2 is null
    

    【讨论】:

      【解决方案3】:
      SELECT Table1.Key1, Table2.Key2
      FROM Table1 
      LEFT OUTER JOIN Table2 ON Table1.Key1 = Table2.Key2 **AND table2.otherColumn IS NULL**
      

      【讨论】:

      • 如果您发布代码、XML 或数据示例,在文本编辑器中突出显示这些行,然后单击编辑器上的“代码示例”按钮 ({ })工具栏以很好地格式化和语法突出显示它!
      【解决方案4】:

      我可以使用左连接检索仅在 Table1 中的键

      与 SQL 中的大多数事情一样,大约有七种不同的方式来执行此操作。

      我觉得EXCEPT 是最容易理解的:

      SELECT Key1
        FROM Table1
      EXCEPT 
      SELECT Key2
        FROM Table2;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-10
        • 2011-02-18
        • 2011-02-01
        • 2014-08-10
        • 2020-08-31
        • 2021-06-11
        • 2010-09-29
        相关资源
        最近更新 更多