質問: テーブル参照について お世話になります。 aテーブルとbテーブルを比較し、aテーブルにしかないデータ一覧を表示するsql文を作成しました。 select * from aテーブル where not exists(select * from bテーブル where code=aテーブル.code and name=bテーブル.name) 下記の場合はどのように記述すればいいのでしょうか? 検索結果はaテーブルに存在しているが、bテーブルまたはcテーブルには存在していないデータ。 以上よろしくお願いいたします。
回答: >検索結果はaテーブルに存在しているが、bテーブルまたはcテーブルには存在していないデータ。 というのは、 ・bとcのどちらかに存在していれば検索対象外 ・bとcの両方に存在していれば検索対象外 の2つの意味に取れますよね。 前者なら select * from テーブルa where (not exists(select * from bテーブル where bテーブル.code=aテーブル.code and bテーブル.name=aテーブル.name) and not exists(select * from cテーブル where cテーブル.code=aテーブル.code and cテーブル.name=aテーブル.name)) 後者なら select * from テーブルa where (not exists(select * from bテーブル where bテーブル.code=aテーブル.code and bテーブル.name=aテーブル.name) or not exists(select * from cテーブル where cテーブル.code=aテーブル.code and cテーブル.name=aテーブル.name)) でしょうか。