3 回答
TA贡献1827条经验 获得超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查询设计器来设置联接。设计人员将根据需要添加括号以保持数据库引擎满意。
TA贡献2021条经验 获得超8个赞
感谢HansUp的回答,它非常有用,而且很有效!
我发现在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“ 链式设置模式 ”
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条经验 获得超3个赞
经过多年解决这个问题,创建单独的查询,我找到了答案。括号?,哪个没有意义,我的意思是前两个连接都在括号中,而不是最后一个,为什么?无论如何,这让我很开心,我现在可以在Access中做到这一点。我还没有回去重写所有这些查询或VBA,不。(不能使用查询设计来挽救我的生命,总是写SQL而不是,这似乎是我的问题)
添加回答
举报