LEFT JOIN不支持SQL Join Expression

Bil*_*eet 6 sql ms-access join left-join

我找不到这个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;
Run Code Online (Sandbox Code Playgroud)

这与PNLTERM/TERMS上的左连接有关; 因为它适用于内部和右部连接,但不适用于左连接.错误是"不支持连接表达式".

有任何想法吗?

cha*_*cha 7

MS Access对于使用与INNER连接的LEFT/RIGHT连接有一些规则.具体而言,有关于其组合的规则.这里解释如下:

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;
Run Code Online (Sandbox Code Playgroud)

或者,您可以更改查询,以便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;
Run Code Online (Sandbox Code Playgroud)