我有三個表:靠山,patron_address和patron_phone 爲每個顧客/所有父表中的行留下喬恩子表直接
贊助有1-3 Patron_address行 patron_address有0-4 我想顯示來自顧客表的所有行以及phone_type ='4'的所有電話號碼。
但是,當我使用下面的查詢時,我只會得到具有電話的行{類型爲4,而不是所有的顧客行。
我試圖讓Access 2007查詢設計器來做到這一點,但有些東西是非常糟糕的。 Patron_address行有一個address_type。只有address_type 1的patron_address行纔有子電話記錄。
那麼如何獲得所有的贊助人行,無論他們是否擁有phone_type 1的patron_phone?
SELECT
PATRON.patron_id, PATRON_PHONE.PHONE_TYPE,
PATRON_PHONE.PHONE_NUMBER, PATRON_ADDRESS.ADDRESS_TYPE
FROM
(PATRON
INNER JOIN
PATRON_ADDRESS ON PATRON.PATRON_ID = PATRON_ADDRESS.PATRON_ID)
LEFT JOIN
PATRON_PHONE ON PATRON_ADDRESS.ADDRESS_ID = PATRON_PHONE.ADDRESS_ID
WHERE
(((PATRON_PHONE.PHONE_TYPE) = '4'))
ORDER BY
PATRON.patron_id;
如果我補充一點,地址類型必須等於1的標準,我得到絕對沒有回來,儘管這個組合存在於數據庫中。是不是我想要左外連接點的行爲?謝謝。
感謝您的建議。但是,patron_phone行只存在address_type 1的patron_address行。因此,無論電話號碼類型如何,修改後的連接都會爲我提供每個patron_phone行。我沒有遇到與拉取電話號碼的問題。數據以文本形式存儲。 – DocDuncan
「AND PATRON_PHONE.PHONE_TYPE = 4」的** ON **條件會將電話號碼的結果限制爲鍵入** 4 **。 –
謝謝。但是,Access對此表示說,LEFT JOIN PATRON_PHONE ON PATRON_ADDRESS.ADDRESS_ID = PATRON_PHONE。ADDRESS_ID和PATRON_PHONE.PHONE_TYPE =「4」,「不支持加入語法」。我從來沒有見過有多個ON子句的連接。 – DocDuncan