小编Del*_*ney的帖子

了解当涉及3个或更多表时JOIN如何工作.[SQL]

我想知道是否有人可以帮助提高我对SQL中JOIN的理解.[如果它对问题很重要,我正在考虑MS SQL Server.]

取3个表A,B [A由某些A.AId相关]和C [B与某些B.BId相关的C]

如果我撰写查询,例如

SELECT *
FROM A JOIN B 
ON A.AId = B.AId
Run Code Online (Sandbox Code Playgroud)

一切都很好 - 我对它的运作方式很满意.

当表C(或其他一些D,E,......被添加)时会发生什么

在这种情况下

SELECT *
FROM A JOIN B 
  ON A.AId = B.AId
JOIN C ON C.BId = B.BId
Run Code Online (Sandbox Code Playgroud)

什么是C加入? - 是B表(以及B表中的值吗?)或者是C表加入的A + B Join的结果是否是其他临时结果集?

[暗示并非B表中的所有值都必须在基于A,B的连接条件的临时结果集A + B中]

我要问的一个具体(并且相当人为)的例子是因为我试图理解我在下面看到的行为:

Tables 
Account (AccountId, AccountBalanceDate, OpeningBalanceId, ClosingBalanceId)
Balance (BalanceId)
BalanceToken (BalanceId, TokenAmount)

Where:
Account->Opening, and Closing Balances are NULLABLE 
(may have opening balance, closing balance, or none)

Balance->BalanceToken is 1:m - a balance …
Run Code Online (Sandbox Code Playgroud)

sql join

68
推荐指数
2
解决办法
5万
查看次数

标签 统计

join ×1

sql ×1