mysql 裡怎麼實現full join
阿新 • • 發佈:2019-02-05
mysql現在還不支援full join ,那如果有這種需求怎麼辦呢?可以用union all來實現
資料來源如下
只需要left join 加 反連線就可以了CREATE TABLE L AS SELECT 'left_1' AS str,'1' AS v FROM dual UNION ALL SELECT 'left_2','2' AS v FROM dual UNION ALL SELECT 'left_3','3' AS v FROM dual UNION ALL SELECT 'left_4','4' AS v FROM dual; CREATE TABLE R AS SELECT 'right_3' AS str,'3' AS v FROM dual UNION ALL SELECT 'right_4','4' AS v FROM dual UNION ALL SELECT 'right_5','5' AS v FROM dual UNION ALL SELECT 'right_6','6' AS v FROM dual;
SELECT l.str AS left_str, r.str AS right_str
FROM l
LEFT JOIN r ON r.v = l.v
UNION ALL
SELECT l.str AS left_str, r.str AS right_str
FROM l
RIGHT JOIN r ON r.v = l.v
WHERE l.v IS NULL
ORDER BY 1 NULLS LAST, 2 NULLS LAST;