1

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

谢谢。

4

3 回答 3

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)
于 2012-09-13T20:33:56.587 回答
0

认为这是一种方法 - 与 b 匹配的 a 中的所有内容,但与 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
于 2012-09-13T20:34:17.323 回答
0

您需要为表 C 添加另一个连接,特别是左外连接,然后过滤行where Tablec.tablea_id is null

于 2012-09-13T20:37:20.210 回答