2013-04-24 50 views
1

我需要在訪問中連接多個表。 Access有一些奇怪的語法,當談到加入,我似乎無法獲得這項權利ms訪問 - 3表連接w/complex第三個表上的JOIN條件

特別是,C需要考慮同時從

select a.*, B.*, c.* 
    from 
    (tblOne as A 
    Left join tblTwo as B on A.ParentId = B.Id) 
    left join tblThree as C on C.ParentId = B.Id and C.ShoeSize = A.ShoeSize 

我也遇到過,並得到近場和B當涉及2個以上的表時,將每個Parens的事情放在一起。 只要我只想引用其他表中的其中一個,我就可以加入到C中。 這種類型的事情在SQL Server中相當直接。 任何幫助將不勝感激,我似乎無法找到谷歌的答案。

客戶端當前正在使用ms Access 2003.如果問題可以通過更新的版本進行修復,我可以讓他們進行升級。

感謝

格雷格

回答

0

我只是試圖在Access 2010中使用以下,並似乎工作,但我必須承認,我沒有在我的腦海裏清晰的畫面,如何這可能會用在「現實世界」中......

SELECT ab.*, c.* 
FROM 
(
    SELECT a.ID AS ID1, a.ShoeSize AS ShoeSize1, b.ID AS ID2 
    FROM tblOne a LEFT JOIN tblTwo b 
     ON a.ParentId = b.Id 
) ab LEFT JOIN tblThree c 
    ON c.ParentId = ab.ID2 and c.ShoeSize = ab.ShoeSize1 
+0

第三張桌子真是一個理貨表。我多次在第二張桌子上進行外部連接,並需要計數表作爲控件。這一切似乎都渾濁的問題,所以我簡化了...讓我找到一份2010年,如果它在那裏工作,超! – greg 2013-04-25 20:41:01

+0

@greg好的,謝謝澄清。我在Access 2010中測試了我的查詢,因爲我手頭上有這個查詢,但我不明白爲什麼Access 2003無法使用。但是,如果您想借此讓客戶升級到更新的(並支持) ....;) – 2013-04-25 20:49:12

+0

我在本地機器上下載了2010這個限制似乎已經消失了。 – greg 2013-04-27 20:27:31