使用SQLite进行完全外部联接

SQLite仅具有INNER和LEFT JOIN。

有没有办法用SQLite进行完全外部联接?


湖上湖
浏览 631回答 3
3回答

至尊宝的传说

是的,请参阅Wikipedia上的示例。SELECT employee.*, department.*FROM   employee        LEFT JOIN department           ON employee.DepartmentID = department.DepartmentIDUNION ALLSELECT employee.*, department.*FROM   department       LEFT JOIN employee          ON employee.DepartmentID = department.DepartmentIDWHERE  employee.DepartmentID IS NULL

一只斗牛犬

在乔纳森·莱夫勒(Jonathan Leffler)评论之后,这是马克·拜尔斯(Mark Byers)的另一种答案:SELECT * FROM table_name_1 LEFT OUTER JOIN table_name_2 ON id_1 = id_2UNIONSELECT * FROM table_name_2 LEFT OUTER JOIN table_name_1 ON id_1 = id_2请参阅此处以获取原始源代码和其他SQLite示例。

白板的微信

如果使用UNION ALL,则两个选择之一必须排除“内部联接”行,例如所示的WHERE条件,这一点至关重要。或者,您可以使用普通的UNION并消除其重复,以避免重复“内部联接”行。
打开App,查看更多内容
随时随地看视频慕课网APP