我有三个SQL表:TableA,TableB和TableC
TableA是TableB和TableC中具有外键的主键表(即TableA分别连接到TableB和TableC)。
示例:
TableA: tableA_id
TableB: tableB_id, tableA_id
TableC: tableC_id, tableA_id
我想从tableA返回记录,该记录与tableB(内部联接)中的记录匹配,但返回的记录不在tableC中。这可以用一个SQL语句来完成吗?
感谢。
答案 0 :(得分: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)
答案 1 :(得分: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
答案 2 :(得分:0)
您需要为表C添加另一个联接,特别是left outer join,然后过滤行where Tablec.tablea_id is null