[英]MS Access 2007 syntax: From Join Join Join Where
我在Access 2007中工作,與SQL相比,與Access相比,我更加滿意。 在閱讀了該站點上與MS Access中的聯接相關的多個線程之后,我認為我做得正確,但是被告知我where子句中出現語法錯誤。這是經過改進的新版本:
FROM (( Patron P
INNER JOIN Patron_Address PA1 ON
(PA1.patron_id = P.patron_id)
LEFT JOIN Patron_Address PA2 ON
(PA2.patron_id = P.patron_id)
LEFT JOIN Patron_Address PA3 ONL
(PA3.patron_id = P.patron_id)
where PA1.address_type = '1'AND
PA2.address_type = '2' AND
PA3.address_type = '3';
讓我解釋一下我的目標。 patron元組有1-3個patron_address元組。 這些地址行具有三種類型:
也,
我需要獲取每個patron_id的所有地址行的地址信息。 來自每個地址行的數據都需要進入一個稀疏查詢結果集中的列,然后我需要將其轉換成制表符分隔的文件以發送給供應商。
這就是為什么我要進行聯接,這就是為什么我需要使用條件。 從邏輯上講,每個聯接的結果都應該有自己的where子句,但這顯然是不允許的。 因此,我有一個where子句,其中列出了三個條件。 那里的問題是三個條件中只有一個適用於每個聯接。
那么,我需要在概念上和語法上做什么才能獲得想要的結果? 感謝最近幾天對這個怪物的幫助。 我想我正在接近。 再說一次,我可能只是簡單地移動了我的錯誤。
您能否嘗試以下查詢:-
FROM Patron P
INNER JOIN Patron_Address PA1 ON PA1.patron_id = P.patron_id)
LEFT JOIN Patron_Address PA2 ON PA2.patron_id = P.patron_id
LEFT JOIN Patron_Address PA3 ON PA3.patron_id = P.patron_id
where PA1.address_type = '1'
AND PA2.address_type = '2'
AND PA3.address_type = '3';
從技術上講,我刪除了所有括號和最后一個“ ON”上的字母“ L”。 您鍵入“ ONL”而不是“ ON”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.