dポイントプレゼントキャンペーン実施中!

こんにちは。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のユーザが抽出される形となります。
以上、よろしくお願いいたします。

A 回答 (1件)

試験してませんが。


not in は not exists でもOK。

select ユーザ名 from 商品購入テーブル
where 購入フラグ = 1
and
ユーザ名 not in
(
select ユーザ名 from 商品購入テーブル
where 購入フラグ = 0
)

ただし、002、003、003が得られるハズ。
002、003のみにしたいのであれば最初のselect ユーザ名 を
select distinct ユーザ名 にしてください。
    • good
    • 0
この回答へのお礼

bin-chan様

分かりやすいご回答を頂きありがとうございました。
実行確認できました。
「not in」ですよねーー。

初心者の稚拙な質問にご回答いただき、大変感謝しております。

お礼日時:2008/09/21 15:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!