重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

sqlで質問です。
idに紐付くkbnが全て1のレコードのidを出力したいのですが、どのように出力したら良いでしょうか。

取得結果のように取得したいのですが、

◯Aテーブル
id no kbn
001 A 1
001 B 1
001 C 2
002 A 1
002 B 1
003 D 1

◯取得結果
id
002
003

A 回答 (4件)

select distinct ID from A where KBN = 1 and ID not in (select ID

from A where KBN <> 1);
    • good
    • 0
この回答へのお礼

ありがとうございます。大変助かりました

お礼日時:2024/02/13 15:57

No.1です。


すみません、読解力が足りませんでした。

select distinct id from Aテーブル where id not in (select id from Aテーブル where kbn != 1);
とか?
kbnが1ではないidを取り、そのid以外を出す。
    • good
    • 0
この回答へのお礼

ありがとうございます。大変助かりました

お礼日時:2024/02/13 15:57

こんな感じでいけんかな笑?



select id
from テーブルA
where id not in (select id
from テーブルA
where kbn not in (1))
    • good
    • 0
この回答へのお礼

ありがとうございます。大変助かりました

お礼日時:2024/02/13 15:57

> idに紐付くkbnが全て1のレコードのidを出力したいのですが


idに紐づくkbnって何でしょう?
kbnが1のレコードのidを出したい、であれば、質問文のテーブルだと
id
001
002
003
になるはずですが、書き間違いでしょうか?

書き間違いと仮定して
・select id from テーブルA where kbn=1 group by id;
・select distinct id from テーブルA where kbn=1;
のどちらでも。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
書き間違えではなく、idが001で例を上げるとレコードでkbnが全て1だった場合は取得対象になりますが、今回はkbn2も存在するため対象外となります。

そのことをidに紐付くkbnと記載しました。
分かりにくくて申し訳ありません。

お礼日時:2024/02/13 11:00

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