La grammaire de SQLite est un peu différente de celle de la spécification SQL-92 selon laquelle les éléments suivants sont illégaux :
*OUTER JOIN
*NATURAL OUTER JOIN
*NATURAL CROSS JOIN
Les deux premiers, parce qu'un <join type>
afin de contenir OUTER
doit également inclure un <outer join type>
avant elle. Le dernier, parce que NATURAL
ne peut se produire qu'en <qualified join>
et non <cross join>
's. Ces derniers ne semblent se comporter selon aucune spécification, c'est donc une bonne idée de les éviter.
Comme il a été répondu sur la liste de diffusion SQLite3 ne prend en charge que trois jointures : CROSS JOIN
, INNER JOIN
y LEFT OUTER JOIN
. Les éléments suivants sont équivalents :
, == CROSS JOIN
JOIN == INNER JOIN
LEFT JOIN == LEFT OUTER JOIN
Comme expliqué dans l'affaire l'article de wikipedia le mot-clé NATURAL est une abréviation pour la recherche et la correspondance sur des colonnes de même nom, et n'affecte pas le type de jointure.
Selon la Page SQLite , ' RIGHT
et FULL
' OUTER JOIN
ne sont pas pris en charge.