Jag tror att du kan se detta som en fråga om operatörsföreträde.
När du skriver detta:
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
Jag tror att det tolkas av parsern så här:
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
)
Om så är fallet, är "grp" i den innersta sammanfogningen obunden.
När man vänder på linjerna med "grupper" och "insrel" gäller den innersta sammanfogningen för "grupper" och "ownrel", så det fungerar.
Förmodligen skulle detta också fungera:
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