Jedynym można zrobić to za pomocą UNION
. MySQL nie obsługuje FULL JOIN
, podobnie jak w MSSQL.
SELECT *
FROM tbl1 t1
LEFT JOIN tbl2 t2
ON t1.col = t2.col
UNION
SELECT *
FROM tbl1 t1
RIGHT JOIN tbl2 t2
ON t1.col>= t2.<col
SEE HERE: Simulating FULL JOIN in MYSQL
Nawiasem mówiąc, UNION
posiada opcjonalną słowa kluczowego ALL
, gdy ALL
zostanie pominięty, UNION
automatycznie wybiera DISTINCT
wiersze z wynikowego.
examle:
SELECT *
FROM tableA
UNION ALL
SELECT *
FROM tableA
może to spowodować duplikaty wierszy
ColA ColB
==================
1 John
2 Jade
2 Jade
3 Hello
ale jeśli pominąć słowo ALL
SELECT *
FROM tableA
UNION
SELECT *
FROM tableA
może to spowodować różne wiersze tylko
ColA ColB
==================
1 John
2 Jade
3 Hello