Věřím, že to můžete považovat za problém přednosti operátora.
Když napíšete toto:
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
Myslím, že to analyzátor interpretuje takto:
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
)
Pokud ano, pak v nejvnitřnějším spojení je „grp“ bez vazby.
Když obrátíte řádky pomocí "groups" a "insrel", nejvnitřnější spojení se vztahuje na "groups" a "ownrel", takže to funguje.
Pravděpodobně by to fungovalo také:
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