MySQL не имеет FULL OUTER JOIN
, но вы можете эмулировать его, например ::100100
SELECT * FROM T1 LEFT OUTER JOIN T2 ON T1.id = T2.id
UNION ALL
SELECT * FROM T1 RIGHT OUTER JOIN T2 ON T1.id = T2.id
WHERE T1.id IS NULL;
В целом:
FULL OUTER JOIN = LEFT OUTER JOIN ∪ (RIGHT OUTER JOIN ∖ INNER JOIN)
Вам нужно вырезать одно внутреннее объединение (здесь из правого объединения, но IMHO не имеет значения, какое вы выберете), потому что оба возвращают одно и то же внутреннее объединение. Здесь у вас есть:
T1:
T2: :
ВЛЕВО НАРУЖНОЕ СОЕДИНЕНИЕ: :
ПРАВО НАРУЖНОЕ СОЕДИНЕНИЕ: :
ВНУТРЕННЕЕ СОЕДИНЕНИЕ: :
ПОЛНОЕ НАРУЖНОЕ СОЕДИНЕНИЕ: :