2016-10-23 11 views
1

たとえばcarとcolorという2つのカラムを持つテーブル(car_color)があります。表はどの車がどの色で利用可能であるかを表しているため、Fordが緑色で表示されている場合、表には行:car = 'Ford', color = 'green'が含まれます。何百、何千台もの車、数十または数百の色と数千の組み合わせがあります。複数のB(MySQL)に一致する 'A'の値をすべて選択する方法

次に、可能なすべての色が一覧表示され、ユーザーが1つ以上の色を選択できるアプリケーションがあります。ユーザーがどれだけ選択するかはわかりません。ユーザーが色を選択した後、利用可能なすべての車をに表示すると、すべての色が選択されます。 SQLでこれを行う最良の方法は何ですか?白、銀、青、赤、黒のすべての車を探したいとします。

これはおそらく単純ですが、何とか私は優雅な解決策を見つけることができません。私はに上記の色のいずれか利用可能なすべての車を一覧表示したい場合は、次のようになります。

select car from car_color where color in ('white', 'silver', 'blue', 'red', 'black') 

が、私はで利用可能な唯一の車すべてこれらの色をしたいときにそれを行うにはどのように?

答えて

2
select  car 
from  car_color 
where  color in ('white', 'silver', 'blue', 'red', 'black') 
group by car 
having  count(*) = 5 
; 
+0

ありがとうございます。おそらく私はそれを理解するためにある程度時間がかかりました。 – tj86430

+0

ようこそ。それがうまくいってから、これを正解とマークしてください。 –

関連する問題