Sql 不支持联接表达式-MS Access 2013
我正在开发一个员工管理系统,这里我需要在法官和职位表上加入,但MS Access显示“不支持加入表达式”。我不明白哪里出错了 下面是我的全部问题Sql 不支持联接表达式-MS Access 2013,sql,ms-access,join,left-join,Sql,Ms Access,Join,Left Join,我正在开发一个员工管理系统,这里我需要在法官和职位表上加入,但MS Access显示“不支持加入表达式”。我不明白哪里出错了 下面是我的全部问题 SELECT [a.emp_name], [b.des_name], FORMAT([c.dte_frm], 'dd.MM.yyyy') AS dte_frm, iif([d.crt_nat] = 'court', [e.jdg_name]&', '&[f.dsg_name], [d.crt_name]&' '&[d.c
SELECT [a.emp_name], [b.des_name], FORMAT([c.dte_frm], 'dd.MM.yyyy') AS
dte_frm, iif([d.crt_nat] = 'court', [e.jdg_name]&', '&[f.dsg_name],
[d.crt_name]&' '&[d.crt_loc]) AS location, [a.emp_teh] AS tehsil,
[a.remarks] AS remarks
FROM employees a, designation b, courts d, postings c
LEFT JOIN judges e ON [c].crt_id = [e].crt_id
WHERE [c.des_id] = [b.des_id]
AND [a.emp_cod] = [c.emp_id]
AND [c.crt_id] = [d.crt_id]
AND [c.to_dte] = 1
AND [c.other_dist] = 0
ORDER BY [d.crt_sort], [a.emp_bps] DESC , [b.des_name] ASC
请帮我纠正这个问题。您将两种类型的
JOIN
混合在一起,这本身就不好。您应该在任何地方使用显式联接。此外,还不清楚联接employees
和designation
表的关系。看起来它们现在正在交叉连接。Access有一种用括号之类的疯狂连接方式。尝试将其放在括号中:(在[c].crt\u id=[e].crt\u id上发布c左连接判断e)
当您使用旧式连接时(即,在FROM子句中添加所有表,然后在where子句中连接它们),此处称为内部连接。尝试使用@TimBiegeleisen提到的相同类型的联接。还要检查关于内部联接和左/右联接冲突的解释。