多个INNER JOIN SQL ACCESS

查询表达式中的语法错误(缺少运算符)'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'。


SELECT tbl_employee.emp_ID,

tbl_employee.emp_name,

tbl_gross.BasicSalary,

tbl_gross.totalOT,

tbl_netpay.totalGross,

tbl_tax.totalLate,

tbl_tax.allowance,

tbl_tax.SSS,

tbl_tax.PhilHealth,

tbl_tax.GSIS,

tbl_tax.HDMF,

tbl_netpay.totalDeduc,

tbl_netpay.emp_ti,

tbl_netpay.emp_wt,

tbl_netpay.emp_np

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;

我总是得到上面的错误。


胡说叔叔
浏览 747回答 3
3回答

斯蒂芬大帝

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查询设计器来设置联接。设计人员将根据需要添加括号以保持数据库引擎满意。

宝慕林4294392

感谢HansUp的回答,它非常有用,而且很有效!我发现在Access中有三种模式,你的是最好的,因为它适用于所有情况。INNER JOIN,你的变种。我将其称为“ 封闭式模式 ”。可以将两个以上的表连接到同一个表,只有这种模式具有良好的性能。SELECT C_Name, cr.P_FirstName+" "+cr.P_SurName AS ClassRepresentativ, cr2.P_FirstName+" "+cr2.P_SurName AS ClassRepresentativ2ndFROM     ((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 ClassRepresentativ2ndFROM person AS crINNER 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 ClassRepresentativ2ndFROM class, person AS cr, person AS cr2WHERE class.C_P_ClassRep=cr.P_Nr AND class.C_P_ClassRep2nd=cr2.P_Nr;

繁星点点滴滴

经过多年解决这个问题,创建单独的查询,我找到了答案。括号?,哪个没有意义,我的意思是前两个连接都在括号中,而不是最后一个,为什么?无论如何,这让我很开心,我现在可以在Access中做到这一点。我还没有回去重写所有这些查询或VBA,不。(不能使用查询设计来挽救我的生命,总是写SQL而不是,这似乎是我的问题)
打开App,查看更多内容
随时随地看视频慕课网APP