1

TableA、TableB、TableCの3つのSQLテーブルがあります

TableAは、TableBとTableCに外部キーを持つ主キーテーブルです(つまり、TableAはTableBとTableCに別々に接続されています)。

例:

TableA: tableA_id
TableB: tableB_id, tableA_id
TableC: tableC_id, tableA_id

tableB(内部結合)のレコードと一致するtableAからレコードを返したいのですが、返されたレコードが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

これはそれを行う1つの方法だと思います-bと一致するがcでは一致しないaからのすべて...

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 に答える