Yahoo知恵袋でこんなやり取りを見かけました。
質問:
クエリを教えてください。
ほんと、つまらない質問で申し訳ないのですが、どうかご教示ください。
以下のように車両情報テーブルが存在します。自動車テーブルid, car_id, type, name…….自動車装備テーブルcar_id, eqip_id装備テーブルeqip_id, name上記で自動車の装備品を複数登録できるのですが『【装備品A,B,C,E】の4つを装備している自動車を検索』とする場合、自動車テーブルと自動車装備テーブルを結合し検索するとおもうのですがそうなると結合データはcar_id, equip_id1, 11, 21, 31, 4のようになるかと思います、するとどのようにして複数AND条件で検索すればよいのか見当がつきません。。
。
。いすゞ中古車結合自体が間違っているのか、考えているクエリが違うのか素人質問で、申し訳ないですが、どうぞご教示ください。
面白いですね。
このような回答がありました。
回答:
ひつの車にダブって同じ装備品があると具合が悪いですが…SELECT 自動車テーブル.car_idFROM (自動車テーブル INNER JOIN 自動車装備テーブル ON 自動車テーブル.car_id = 自動車装備デーブル.car_id) INNER JOIN 装備テーブル ON 自動車装備テーブル.eqip_id = 装備テーブル.eqip_idWHERE 装備テーブル.name IN (’A',’B',’C',’E')GROUP BY 自動車テーブル.car_idHAVING Count(*)=4基本的には、自動車装備テーブルでA,B,C,Eで絞り込んで car_idごとにカウントさせて4件になるデータを抽出すればいいのかなと
今日はこれで。
(YAHOOから引用)