[英]Left join inside left join
我從表中獲取值時遇到問題。
我需要這樣的東西
A.Id a1
B.Id b1
C.Id c1
B.Id b2
C.Id c2
C.Id c3
C.Id c4
表 A 和 B 以及表 B 和 C 連接在一起。 表 A 可以具有表 B 中的一個/零或多個值。表 C 中的值也是如此。
我需要在表 B 上的表 A 上執行左連接,並在表 B 上的表 C 上執行左連接。
我嘗試使用表 A 和 B 的左連接,但不知道如何在左連接中執行左連接。
那可能嗎? 它的語法是什么樣的?
編輯:數據看起來像這樣
ZZN1 P1 NULL
ZZN1 P2 NAB1
ZZN2 P3 NAB2
ZZN2 P3 NAB3
無需嵌套左連接,您可以簡單地將它們展平並讓您的 RDMBS 處理邏輯。
示例架構:
a(id)
b(id, aid) -- aid is a foreign key to a(id)
c(id, bid) -- aid is a foreign key to b(id)
詢問:
select a.id, b.id, c.id
from a
left join b on b.aid = a.id
left join c on c.bid = b.id
如果第一個左連接不成功,那么第三個也不能執行,因為連接列b.id
將是null
。 另一方面,如果第一個左連接成功,那么第三個左連接可能會成功,也可能不會成功,這取決於c
中是否有相關的bid
。
SELECT A.Name, B.Name , C.Name
FROM A
LEFT JOIN B ON A.id = B.id
LEFT JOIN C ON B.id = C.id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.