【问题标题】:Joining 3 tables in sql-server在 sql-server 中加入 3 个表
【发布时间】:2015-10-10 12:52:05
【问题描述】:

我在 sql-server 中有三个表,比如表 A 表 B 表 C。

如何加入如下图所示的 3 个表?

【问题讨论】:

  • 解释如何阅读图表。如果它是维恩图,那么圆圈集是什么?为什么以这种方式标记它们以及它与加入有什么关系——特别是因为表是行包而不是行集,我们可以期望没有任何行值这些表中的任何其他表中? (据称,维恩图经常被用来说明连接,但它们从未被解释过并且几乎没有意义。但如果你想问一个问题,你需要在这里理解。)

标签: sql sql-server database sql-server-2008 join


【解决方案1】:

需要更多信息才能为您提供正确的代码,但您需要来自图像LEFT JOINs。

(已假定 ID)

SELECT *
FROM Customers c
LEFT JOIN Items i ON c.iid = i.id
LEFT JOIN Sales s ON c.sid = s.id

【讨论】:

  • 我认为您的代码 90% 正确,但您不会返回项目与销售之间匹配的项目。在 Items 和 Sales 之间需要一个内部连接来添加该区域。
【解决方案2】:

什么时候都不晚:)

你很可能需要这个:

select ...
  from customers
  full outer join (items inner join sales on (xxx)) on (xxx)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 2013-05-05
    • 2021-05-08
    • 2021-03-05
    • 2016-12-08
    • 1970-01-01
    相关资源
    最近更新 更多