TL; DR:我想知道是否可以在Access中混合使用LEFT和INNER連接,因爲左連接(as is to be expected)顯着減慢了我的查詢速度。我可以在Access 2010 SQL中將LEFT JOINS和INNER JOINS混合使用嗎?
完整版:昨天,我having an issue,這原來是由Access 2010不喜歡我混合LEFT和INNER在聯合查詢連接造成的。稍微回顧一下:
我有三個查詢,我希望合併。每個組成查詢都是使用幾個表和INNER JOIN構建的。
然後我需要結合這三個查詢。 Q1比第二季度和第三季度的結果更多,並且在第二季度和/或第三季度沒有匹配的情況下,我仍然想要返回Q1的結果。同樣,Q2返回的結果Q3沒有,我想返回空結果而不是結果,反之亦然。
所有這些都需要使用LEFT JOIN連接Q1,Q2和Q3的第四個查詢;但是這造成了「多部分標識符不能被綁定」的錯誤。這是通過用LEFT JOINS替換組成查詢中的所有INNER JOIN來解決的。從本質上講,我認爲Q4只會考慮其他查詢的結果,而實際上它是一次性完成的,因此是錯誤。
所以,我解決了實際的錯誤,但我現在正在運行四個查詢,全部使用LEFT JOIN。即使這在每個組成查詢中都返回相同的結果,但由於外部聯接的工作原因,它要慢得多。
有沒有什麼方法可以讓我的組合查詢按照我原先預期的方式工作(即,使用INNER JOINS生成Q1,Q2和Q3以獲得速度,然後Q4將它們作爲平面數據在左連接時處理它們)?
我可以使用一些VBA將每個查詢放到一個臨時表中,讓Q4看看這些,但我希望能夠在SQL中完成所有操作。這可以做到嗎?
請提供架構,示例數據和所需輸出。 – RedFilter
嗨@RedFilter - 原諒我的無知,但是不是隻在SQL Server相關的模式?我正在使用MS Access 2010.我可能會誤解這個詞。 – BFWebAdmin
我認爲架構@RedFilter意味着表結構 –