Wikipedia:
"In de wiskunde is een binaire bewerking commutatief als het veranderen van de volgorde van de operanden het resultaat niet verandert. Het is een fundamentele eigenschap van veel binaire bewerkingen en veel wiskundige bewijzen zijn ervan afhankelijk."
Antwoord:
nee, een left join is niet commutatief. En inner join is.
Maar dat is niet echt wat je vraagt.
Is de volgende vraag:
TableA INNER JOIN TableB LEFT JOIN TableC LEFT JOIN TableD
(allemaal gekoppeld aan een id-kolom) gelijk aan:
TableA INNER JOIN TableB
INNER JOIN TableC
LEFT JOIN TableD
UNION
TableA INNER JOIN TableB
LEFT JOIN TableC ON TableB.c_id IS NULL
LEFT JOIN TableD
Antwoord:
Ook nee. Vakbonden en toetredens bereiken over het algemeen niet hetzelfde. In sommige gevallen kun je ze misschien gelijkwaardig schrijven, maar ik denk niet dat de algemene pseudo-sql die je laat zien. De ON-constitutie lijkt niet te werken (misschien iets dat ik niet weet in MySQL?)
Hier is een vereenvoudigde reeks zoekopdrachten waarvan ik denk dat ze gelijkwaardig zijn.
SELECT *
FROM TableA a
LEFT JOIN
TableB b ON a.id = b.id_a
SELECT *
FROM TableA a
INNER JOIN
TableB b ON a.id = b.id_a
UNION
SELECT *
FROM TableA a
LEFT JOIN
TableB b ON a.id = b.id_a
WHERE TableB.id IS NULL
Bewerken 2:
Hier is nog een voorbeeld dat dichter bij jou ligt, maar in wezen hetzelfde is.
SELECT *
FROM TableA a
INNER JOIN TableB b ON a.id = b.id_a
LEFT JOIN TableC c ON b.id = c.id_b
is hetzelfde als
SELECT *
FROM TableA a
INNER JOIN TableB b ON a.id = b.id_a
INNER JOIN TableC c ON b.id = c.id_b
UNION
SELECT *
FROM TableA a
INNER JOIN TableB b ON a.id = b.id_a
LEFT JOIN TableC c ON b.id = c.id_b
WHERE TableC.id IS NULL
Maar ik nog denk niet dat ik je echte vraag beantwoord.