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

SQL初心者です。

製品ID 使用部品
A     1
A     2
A     3
B     1
B     2
C     1

というテーブルから、
指定した部品を使用している製品IDを取り出したいです。
例えば、1と2を指定した場合に、AとBを返して欲しいのですが、
どういったクエリを書けば良いのでしょうか?

select 製品ID from TB where 使用部品=1 or 使用部品=2

とすると当然ながらCまで返してきてどうしたら良いかわかりません。
宜しくお願いします。

A 回答 (4件)

下記でどうですか。



----
select 製品ID
from TB
where 使用部品 in (1,2)
group by 製品ID
having count(*) = 2
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
これで解決できました。
ありがとうございました。

お礼日時:2011/11/30 16:31

こんな感じじゃない?



select distinct t1.製品ID
from TB as t1
inner join TB as t2
on t1.製品ID=t2.製品ID
and t1.使用部品=1
and t2.使用部品=2
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
勉強になりました。

お礼日時:2011/11/30 16:36

select 製品ID from TB where 使用部品=1


and 製品ID in(select 製品ID from TB where 使用部品=2)
でどうでしょうか。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
ありがとうございました。

お礼日時:2011/11/30 16:34

select 製品ID from TB where 使用部品 in(1, 2) and 製品ID != 'C'

この回答への補足

製品IDはABC以外に複数あり、使用部品も123以外に複数あります。
その中から1つ以上指定した使用部品を含む製品IDを取り出したいです。

補足日時:2011/11/30 16:14
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
製品IDはABC以外複数あります。
タイトルと説明が悪かったようです。
すいません。

お礼日時:2011/11/30 16:10

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

関連するカテゴリからQ&Aを探す