【发布时间】:2017-10-28 09:12:10
【问题描述】:
我有以下表格:
表A
- 身份证
- 姓名
表B
- 身份证
- tableA_id
表C
- 身份证
- tableA_id
所以表 B 和 C 有tableA_id fk。
我需要一个查询,它将返回 TableA 中在 TableB 或 TableC 中具有引用的所有 id-s。
如果我进行标准连接,它将只返回在表 B 和表 C 中都有引用的值。
我可以使用两个查询来做到这一点,一个连接 B,另一个连接 C,并使用 UNION 来合并结果,但我不想写两次相同的查询。
有没有办法实现这个'OR' JOIN??
【问题讨论】:
-
您可以使用 EXISTS 或 2 个外连接并检查来自 a/b 的至少 1 个非空返回值(coalesce 可以在那里工作)。
标签: sql postgresql