2012-09-13 154 views
1

我有三個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語句完成嗎?

謝謝。

回答

1
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) 
0

認爲這是做這件事 - 從一個以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 
0

您需要添加另一個加盟的表C,具體而言,一個left outer join,然後過濾行where Tablec.tablea_id is null