簡體   English   中英

左連接內左連接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM