我无法找到此SQL表达式的错误:
SELECT DISTINCT PNLTERM.TAGSTRIP, TERMS.TERM, PNLTERM.STRIPSEQ, TERMS.WIRENO,
TERMS.REF, TERMS.MFG, TERMS.CAT, TERMS.BLOCK, PNLTERM.HDL, TERMS.WDBLKNAM,
TERMS.JUMPER_ID, WIREFRM2.WIRELAY
FROM (PNLTERM LEFT JOIN TERMS ON PNLTERM.LINKTERM = TERMS.LINKTERM)
INNER JOIN WIREFRM2 ON TERMS.HDL = WIREFRM2.COMP_HDL;
这与PNLTERM / TERMS上的左连接有关;因为它适用于内部和右部连接,但不适用于左连接。 错误是不支持加入表达式'。
有什么想法吗?
答案 0 :(得分:7)
MS Access对于使用与INNER联接的LEFT / RIGHT联接有一些规则。具体而言,有关于其组合的规则。解释here:
LEFT JOIN或RIGHT JOIN可以嵌套在INNER JOIN中,但INNER JOIN可能不会嵌套在LEFT JOIN或RIGHT JOIN中。
您有几个选择:您可以将第二个联接转换为左联接:
SELECT DISTINCT PNLTERM.TAGSTRIP, TERMS.TERM, PNLTERM.STRIPSEQ, TERMS.WIRENO,
TERMS.REF, TERMS.MFG, TERMS.CAT, TERMS.BLOCK, PNLTERM.HDL, TERMS.WDBLKNAM,
TERMS.JUMPER_ID, WIREFRM2.WIRELAY
FROM (PNLTERM LEFT JOIN TERMS ON PNLTERM.LINKTERM = TERMS.LINKTERM)
LEFT JOIN WIREFRM2 ON TERMS.HDL = WIREFRM2.COMP_HDL;
或者,您可以更改查询,以便首先进入INNER:
SELECT DISTINCT PNLTERM.TAGSTRIP, TERMS.TERM, PNLTERM.STRIPSEQ, TERMS.WIRENO,
TERMS.REF, TERMS.MFG, TERMS.CAT, TERMS.BLOCK, PNLTERM.HDL, TERMS.WDBLKNAM,
TERMS.JUMPER_ID, WIREFRM2.WIRELAY
FROM (WIREFRM2 INNER JOIN TERMS ON TERMS.HDL = WIREFRM2.COMP_HDL)
RIGHT JOIN PNLTERM ON PNLTERM.LINKTERM = TERMS.LINKTERM;