3 回答

TA貢獻1827條經(jīng)驗 獲得超8個贊
FROM對于包含多個連接的查詢,Access需要在子句中使用括號。試試這種方式......
FROM
((tbl_employee
INNER JOIN tbl_netpay
ON tbl_employee.emp_id = tbl_netpay.emp_id)
INNER JOIN tbl_gross
ON tbl_employee.emp_id = tbl_gross.emp_ID)
INNER JOIN tbl_tax
ON tbl_employee.emp_id = tbl_tax.emp_ID;
如果可能,請使用Access查詢設(shè)計器來設(shè)置聯(lián)接。設(shè)計人員將根據(jù)需要添加括號以保持?jǐn)?shù)據(jù)庫引擎滿意。

TA貢獻2021條經(jīng)驗 獲得超8個贊
感謝HansUp的回答,它非常有用,而且很有效!
我發(fā)現(xiàn)在Access中有三種模式,你的是最好的,因為它適用于所有情況。
INNER JOIN,你的變種。我將其稱為“ 封閉式模式 ”。可以將兩個以上的表連接到同一個表,只有這種模式具有良好的性能。
SELECT C_Name, cr.P_FirstName+" "+cr.P_SurName AS ClassRepresentativ, cr2.P_FirstName+" "+cr2.P_SurName AS ClassRepresentativ2nd
FROM
((class
INNER JOIN person AS cr
ON class.C_P_ClassRep=cr.P_Nr
)
INNER JOIN person AS cr2
ON class.C_P_ClassRep2nd=cr2.P_Nr
)
;
INNER JOIN“ 鏈?zhǔn)皆O(shè)置模式 ”
SELECT C_Name, cr.P_FirstName+" "+cr.P_SurName AS ClassRepresentativ, cr2.P_FirstName+" "+cr2.P_SurName AS ClassRepresentativ2nd
FROM person AS cr
INNER JOIN ( class
INNER JOIN ( person AS cr2
) ON class.C_P_ClassRep2nd=cr2.P_Nr
) ON class.C_P_ClassRep=cr.P_Nr
;
與WHERE交叉加入
SELECT C_Name, cr.P_FirstName+" "+cr.P_SurName AS ClassRepresentativ, cr2.P_FirstName+" "+cr2.P_SurName AS ClassRepresentativ2nd
FROM class, person AS cr, person AS cr2
WHERE class.C_P_ClassRep=cr.P_Nr AND class.C_P_ClassRep2nd=cr2.P_Nr
;

TA貢獻1803條經(jīng)驗 獲得超3個贊
經(jīng)過多年解決這個問題,創(chuàng)建單獨的查詢,我找到了答案。括號?,哪個沒有意義,我的意思是前兩個連接都在括號中,而不是最后一個,為什么?無論如何,這讓我很開心,我現(xiàn)在可以在Access中做到這一點。我還沒有回去重寫所有這些查詢或VBA,不。(不能使用查詢設(shè)計來挽救我的生命,總是寫SQL而不是,這似乎是我的問題)
添加回答
舉報