我有两张桌子:
的 T1
如图1所示,
2,B
T2
2,GGG
3,嗯
我希望他们之间的联系给我所有领域:
1,A,NULL,NULL
2,B,2,GGG
null,null,3,hhh
答案 0 :(得分:4)
MySQL doesn't有FULL OUTER JOIN
,但您可以模仿它,例如:
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)
您需要剪切一个内部联接(此处来自右联接,但恕我直言并不重要您选择哪一个),因为两者都返回相同内部联接。在这里你有:
<强> T1:强>:
<强> T2:强>:
LEFT OUTER JOIN::
RIGHT OUTER JOIN::
INNER JOIN::
FULL OUTER JOIN::
答案 1 :(得分:0)
如果表具有唯一的(组合)列,则可以在子查询中构建ID列表。然后,您可以使用两个外部联接来模拟完整的外部联接:
select *
from (
select col1
from t1
union
select col1
from t2
) ids
left join
t1
on ids.col1 = t1.col1
left join
t2
on ids.col1 = t2.col1