我有以下表格:
表A
表B
表C
所以表B和C有tableA_id
fk。
我需要一个查询,它将返回TableA中所有在TableB或TableC中引用的id-。
如果我进行标准连接,它将仅返回在表B和C中都有引用的值。
我可以使用两个查询来做到这一点,一个加入B,其他加入C并使用UNION来合并结果,但我不想写两次相同的查询。
有没有办法实现这个'或'JOIN ??
答案 0 :(得分:0)
试试这个
SELECT DISTINCT TABLEA.ID_A, TABLEA.NAME
FROM TABLEA,TABLEB,TABLEC
WHERE TABLEA.ID_A = TABLEB.ID_A AND TABLEA.ID_A = TABLEC.ID_A
使用DISTINCT TAG消除重复。
答案 1 :(得分:0)
这样的东西?
SELECT
*
FROM
TableA,
TableB,
TableC
WHERE
TableA.id = TableB.tableA_id
OR TableA.id = TableC.tableA_id
答案 2 :(得分:0)
您可以使用左外连接并检查ID:
SELECT a.id FROM A a
LEFT JOIN B b ON a.id = b.tableA_id LEFT JOIN C c ON a.id = c.tableA_id
WHERE b.id IS NOT NULL OR c.id IS NOT NULL