Ich glaube, Sie können sich das als ein Problem mit der Priorität von Operatoren vorstellen.
Wenn Sie dies schreiben:
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
Ich denke, es wird vom Parser so interpretiert:
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
)
Wenn ja, dann ist im innersten Join "grp" ungebunden.
Wenn Sie die Zeilen mit "groups" und "insrel" umkehren, gilt der innerste Join für "groups" und "ownrel", also funktioniert es.
Wahrscheinlich würde das auch funktionieren:
FROM groups grp
JOIN insrel archiverel ON archiverel.dnumber = grp.number
LEFT OUTER JOIN ownrel ownrel ON grp.number = ownrel.dnumber
LEFT OUTER JOIN tags tags ON tags.number = ownrel.snumber
WHERE archiverel.snumber = 11128188