我有两个简单的SQL表,我想把它们组合成一个表。 我想将表A(实际上称为view_gradedchallenges)和表B(实际上称为view_totalpartpoints)组合到表AB中。
我读到一个FULL OUTER JOIN可能会完成这项工作,但由于某些原因,MySQL不支持。另一种方法是LEFT JOIN,RIGHT JOIN,然后使用UNION或UNION ALL组合两个查询。 但这给了我以下结果:
有人可以帮我找到会产生表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
但不幸的是,这会导致错误的结果(见第二张图片的左侧部分)。 我想知道如何解决这个问题。请帮助我(而不是显示一个不回答这个特定问题的类似线程)