sql - tablas - right join oracle
LEFT JOIN SQL Join Expression no es compatible (1)
No puedo encontrar lo que está mal con esta expresión 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;
Tiene algo que ver con la combinación izquierda en PNLTERM / TÉRMINOS; ya que funciona con una unión interna y derecha, pero no con una combinación izquierda. El error es ''Unir expresión no compatible''.
¿Algunas ideas?
MS Access tiene algunas reglas con respecto al uso de combinaciones LEFT / RIGHT con las combinaciones INNER. Específicamente, hay una regla con respecto a su mezcla. Se explica aquí :
Una unión IZQUIERDA o una UNIÓN DERECHA se pueden anidar dentro de una UNIÓN INTERNA, pero una UNIÓN INTERIOR no se puede anidar dentro de una UNIÓN IZQUIERDA o una UNIÓN DERECHA.
Tienes un par de opciones: puedes convertir la segunda unión en una combinación izquierda:
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;
O bien, puede cambiar la consulta, de modo que la unión INNER sea lo primero:
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;