1

私は次のテーブルを持っています:

companyContacts
addresses
states
phoneNumbers

そして、、、、およびでaddressesLEFTJOINを実行する必要があります。と接続する必要があり、と接続する必要があります。statesphoneNumbersphoneNumbersaddressescompanyContactsstatesaddresses

私はすべてをつかむために次のような選択をすることができます。ただし、誰かが電話番号ではなく住所を持っている場合、結果は返されません。phoneNumbersとの両方addressesがから結合されるようにするにはどうすればよい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
4

1 に答える 1

3

あなたがこれを望んでいるように聞こえます:

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、電話番号や住所がなくてもレコードが返されます。あなたがそれを書いた方法は、住所を返すために存在する必要がある電話番号を書きました

于 2012-12-20T18:07:41.117 に答える