La gramática SQLite es un poco diferente de the SQL-92 spec 's, según la cual, los siguientes son ilegal:
*OUTER JOIN
*NATURAL OUTER JOIN
*NATURAL CROSS JOIN
Los dos primeros, porque un <join type>
, con el fin de contener OUTER
, también deben incluir una <outer join type>
antes que él. El último, porque NATURAL
solo puede ocurrir en <qualified join>
, no en <cross join>
. Estos no parecen comportarse de acuerdo con ninguna especificación, por lo que es una buena idea evitarlos.
Como fue respondida en the mailing list, SQLite3 sólo es compatible con tres uniones: CROSS JOIN
, INNER JOIN
y LEFT OUTER JOIN
. Los siguientes son equivalentes:
, == CROSS JOIN
JOIN == INNER JOIN
LEFT JOIN == LEFT OUTER JOIN
Como se explica en the wikipedia article la palabra clave NATURAL es un atajo para encontrar y combinar en las columnas del mismo nombre, y no afecta el tipo de la unión.
De acuerdo con la SQLite page, 'RIGHT
' y '' FULL
OUTER JOIN
's no son compatibles.
No ¿Soporte DERECHO EXTERIOR o FULL OUTER? –
No, y permítanme agregar eso explícitamente, gracias. –