質問: 【sql】select文 こんにちは。oracleのsqlを勉強中の者です。 select文について質問させてください。 下記のテーブルから購入フラグがすべて「1」のユーザ名を抽出したいのですが、sql文をご教授いただけますでしょうか。 テーブル名:商品購入テーブル ユーザ名 商品名 購入フラグ ---------- ---------- -------------- 001 aaa 1 001 bbb 1 001 ccc 0 002 ddd 1 003 aaa 1 003 eee 1 004 ccc 0 このテーブルからですと、002と003のユーザが抽出される形となります。 以上、よろしくお願いいたします。
回答: 試験してませんが。 not in は not exists でもok。 select ユーザ名 from 商品購入テーブル where 購入フラグ = 1 and ユーザ名 not in ( select ユーザ名 from 商品購入テーブル where 購入フラグ = 0 ) ただし、002、003、003が得られるハズ。 002、003のみにしたいのであれば最初のselect ユーザ名 を select distinct ユーザ名 にしてください。