MySql完全加入

时间:2016-05-17 15:52:27

标签: mysql database join outer-join full-outer-join

我正在使用MySql

所以我有5个表,我试图构建一个将所有这些连接在一起的视图,并显示当前结构缺少的信息。

plat(1 =多个)PG(1 =多个)TS

PG(1 =很多)PGHist

TT(1 =很多)TS

OR

enter image description here 我正在使用MySql,但我不知道如何写这个,因为你不能使用完整的连接,因为我知道在MySql中有人可以帮忙吗?

我需要它,所以显示任何部分的空值。

1 个答案:

答案 0 :(得分:1)

考虑使用LEFT JOIN和RIGHT JOIN的UNION来模拟MySQL中的FULL JOIN,如下所示:

SELECT * FROM PLAT
LEFT JOIN PG ON PG.FORGEIN_KEY = PLAT.PRIMARY_KEY
LEFT JOIN PGHIST ON PGHIST.FORGEIN_KEY = PG.PRIMARY_KEY
LEFT JOIN PG ON PG.FORGEIN_KEY = PLAT.PRIMARY_KEY
LEFT JOIN TS ON TS.FORGEIN_KEY = PG.PRIMARY_KEY
LEFT JOIN TT ON TT.FORGEIN_KEY = TS.PRIMARY_KEY

UNION

SELECT * FROM PLAT
RIGHT JOIN PG ON PG.FORGEIN_KEY = PLAT.PRIMARY_KEY
RIGHT JOIN PGHIST ON PGHIST.FORGEIN_KEY = PG.PRIMARY_KEY
RIGHT JOIN PG ON PG.FORGEIN_KEY = PLAT.PRIMARY_KEY
RIGHT JOIN TS ON TS.FORGEIN_KEY = PG.PRIMARY_KEY
RIGHT JOIN TT ON TT.FORGEIN_KEY = TS.PRIMARY_KEY