Pourquoi l'ordre des tables est-il important lors de la combinaison d'une jointure interne &? ce qui suit échoue avec postgres:Jointure interne et jointure externe; l'ordre des tables est-il important?
SELECT grp.number AS number,
tags.value AS tag
FROM groups grp,
insrel archiverel
LEFT OUTER JOIN ownrel ownrel ON grp.number = ownrel.dnumber
LEFT OUTER JOIN tags tags ON tags.number = ownrel.snumber
WHERE archiverel.snumber = 11128188 AND
archiverel.dnumber = grp.number
avec le résultat:
ERROR: invalid reference to FROM-clause entry for table "grp" LINE 5: LEFT OUTER JOIN ownrel ownrel ON grp.number = ownrel.d...
^ HINT: There is an entry for table "grp", but it cannot be referenced from this part of the query.
lorsque les groupes sont inversés dans les de tout travaux:
SELECT grp.number AS number,
tags.value AS tag
FROM insrel archiverel,
groups grp
LEFT OUTER JOIN ownrel ownrel ON grp.number = ownrel.dnumber
LEFT OUTER JOIN tags tags ON tags.number = ownrel.snumber
WHERE archiverel.snumber = 11128188 AND
archiverel.dnumber = grp.number
qui est très intéressant. Cela doit avoir quelque chose à voir avec le mélange des conventions de jointure. Je suis un peu surpris que la deuxième version fonctionne même! –