关于SQL join语句

时间:2012-09-13 20:31:45

标签: sql

我有三个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语句来完成吗?

感谢。

3 个答案:

答案 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