我想在memsql中有一个完整的外连接。像
这样的东西SELECT *
FROM A FULL OUTER JOIN B
ON A.id = B.id
有可能吗?
答案 0 :(得分:4)
似乎MemSQL 不具有FULL OUTER JOIN
语法。但是,您应该能够使用LEFT
和RIGHT
OUTER JOIN
操作的组合在MemSQL中模拟完整的外部联接:
SELECT * FROM A
LEFT OUTER JOIN B ON A.id = B.id
UNION ALL
SELECT * FROM A
RIGHT OUTER JOIN B on A.id = B.id
WHERE ISNULL(A.id)
第一个SELECT
覆盖橙色区域,即匹配A
和B
之间的记录以及A
中与B
中的任何内容不匹配的记录}。第二个查询仅获取B
中与A
中的任何内容不匹配的记录。使用UNION ALL
代替UNION
可确保不会删除重复项。