Wikipédia:
"Em matemática, uma operação binária é comutativa se mudar a ordem dos operandos não altera o resultado. É uma propriedade fundamental de muitas operações binárias, e muitas provas matemáticas dependem disso."
Responda:
não, uma junção à esquerda não é comutativa. E a junção interna é.
Mas não é bem isso que você está perguntando.
É a seguinte consulta:
TableA INNER JOIN TableB LEFT JOIN TableC LEFT JOIN TableD
(todos unidos a uma coluna id) equivalente a:
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
Responda:
Também não. Uniões e junções não realizam a mesma coisa, em geral. Em alguns casos, você pode escrevê-los de forma equivalente, mas não acho tão geral o pseudo sql que você está mostrando. A constituição ON parece que não deve funcionar (talvez algo sobre o qual eu não saiba no MySQL?)
Aqui está um conjunto simplificado de consultas que eu acho que seria equivalente.
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
Edição 2:
Aqui está outro exemplo que está mais próximo do seu, mas em essência o mesmo.
SELECT *
FROM TableA a
INNER JOIN TableB b ON a.id = b.id_a
LEFT JOIN TableC c ON b.id = c.id_b
é o mesmo que
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
Mas eu ainda não pense que estou respondendo sua pergunta real.