簡體   English   中英

MySQL LEFT JOIN來自同一源表的多個表

[英]MySQL LEFT JOIN multiple tables from same source table

我有以下表格:

companyContacts
addresses
states
phoneNumbers

我需要對addressesstatesphoneNumbers進行LEFT JOIN。 我需要使用companyContacts連接phoneNumbersaddresses ,並且需要使用addresses連接states

我可以做以下選擇來抓住一切。 但是,如果有人有地址而不是電話號碼,則不會返回結果。 如何使phoneNumbersaddresses都從companyContacts加入?

SELECT * FROM
    companyContacts AS c
    LEFT JOIN phoneNumbers AS p
        ON c.entityID = p.entityID
    LEFT JOIN addresses AS a
        ON p.entityID = a.entityID
    LEFT JOIN states AS s
        ON a.stateID = s.id

聽起來你想要這個:

SELECT * 
FROM  companyContacts AS c
LEFT JOIN phoneNumbers AS p
   ON c.entityID = p.entityID
LEFT JOIN addresses AS a
   ON c.entityID = a.entityID
LEFT JOIN states AS s
   ON a.stateID = s.id

如果您在加入companyContacts.entityId到兩個phoneNumbersaddresses ,那么你將返回的記錄,即使沒有電話號碼或地址。 你寫它的方式需要存在的電話號碼來返回一個地址

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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