Jeg tror, at du kan tænke på dette som et spørgsmål om operatørprioritet.
Når du skriver dette:
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
Jeg tror, det tolkes af parseren sådan her:
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
)
Hvis ja, så er "grp" i den inderste sammenføjning ubundet.
Når du vender linjerne med "grupper" og "insrel", gælder den inderste join for "grupper" og "ownrel", så det virker.
Dette ville sandsynligvis også fungere:
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