使用SQL将一个表中的两个表组合在一起

时间:2017-09-04 15:31:17

标签: mysql join union

我有两个简单的SQL表,我想把它们组合成一个表。 我想将表A(实际上称为view_gradedchallenges)和表B(实际上称为view_totalpartpoints)组合到表AB中。

Click here for an image that makes it clearer

我读到一个FULL OUTER JOIN可能会完成这项工作,但由于某些原因,MySQL不支持。另一种方法是LEFT JOIN,RIGHT JOIN,然后使用UNION或UNION ALL组合两个查询。 但这给了我以下结果:

Click here for an image that makes it clearer

有人可以帮我找到会产生表AB的查询吗?

这是我目前使用的查询:

SELECT * from view_gradedchallenges LEFT OUTER JOIN view_totalpartpoints ON view_gradedchallenges.author = view_totalpartpoints.uid
UNION
SELECT * from view_gradedchallenges RIGHT OUTER JOIN view_totalpartpoints ON view_gradedchallenges.author = view_totalpartpoints.uid

如果您使用名称TableA和TableB而不是原始名称,这将是查询:

SELECT * from TableA LEFT OUTER JOIN TableB ON TableA.author = TableB.uid
UNION
SELECT * from TableA RIGHT OUTER JOIN TableB ON TableA.author = TableB.uid

但不幸的是,这会导致错误的结果(见第二张图片的左侧部分)。 我想知道如何解决这个问题。请帮助我(而不是显示一个不回答这个特定问题的类似线程)

0 个答案:

没有答案