我有三個SQL表:表A,表B和表C關於SQL連接語句
表A與表B中和表C外鍵(即表A連接到表B和表C分開)主鍵的表。
例子:
TableA: tableA_id
TableB: tableB_id, tableA_id
TableC: tableC_id, tableA_id
我想從表A返回記錄,這與TableB中(內部連接)的記錄一致,但返回的記錄不在表C。這可以用單個SQL語句完成嗎?
謝謝。
我有三個SQL表:表A,表B和表C關於SQL連接語句
表A與表B中和表C外鍵(即表A連接到表B和表C分開)主鍵的表。
例子:
TableA: tableA_id
TableB: tableB_id, tableA_id
TableC: tableC_id, tableA_id
我想從表A返回記錄,這與TableB中(內部連接)的記錄一致,但返回的記錄不在表C。這可以用單個SQL語句完成嗎?
謝謝。
select a.x, b.y
from tablea a
inner join tableb b on a.x = b.x
where not exists (select null
from tablec c
where a.x = c.x)
認爲這是做這件事 - 從一個以b相匹配,而不是在C ...
select a.*
from TableA
join TableB
on TableA.tablea_id=TableB.tablea_id
left outer join TableC
on TableA.tablea_id=tableC.Tablea_id
where Tablec.tablea_id is null
您需要添加另一個加盟的表C,具體而言,一個left outer join,然後過濾行where Tablec.tablea_id is null