- ベストアンサー
あいまい検索の仕方で・・・
SELECT 担当, 商品, 売上品 FROM TableName WHERE 担当 IN (SELECT 担当 FROM TableName WHERE 売上品 = '竹輪') AND 担当 IN (SELECT 担当 FROM TableName WHERE 売上品 = '胡瓜') AND 売上品 IN ('竹輪','胡瓜') とサブクエリで出したいものが出ますが・・・あいまい検索にしたいと思っています。 SELECT 担当, 商品, 売上品 FROM TableName WHERE 担当 IN (SELECT 担当 FROM TableName WHERE 売上品 like '%竹輪%') AND 担当 IN (SELECT 担当 FROM TableName WHERE 売上品 like '%胡瓜%') AND 売上品 IN ('竹輪','胡瓜') まではわかるのですが売上品 IN ('竹輪','胡瓜')はどうすればよいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
質問者さまが何度か類似の質問をされているのですが、元のクエリに対するコメントは私だったので。。 http://qanda.rakuten.ne.jp/qa4197103.html 「竹輪と胡瓜の<両方>を売上品に持っている担当のデータを、竹輪または胡瓜に関してのみ表示する」って内容だったと思います。 それでこんなクエリになっているのですが、その流れからいくと、以下の通りにするしかないでしょうね。 SELECT 担当, 商品, 売上品 FROM TableName WHERE 担当 IN (SELECT 担当 FROM TableName WHERE 売上品 like '%竹輪%') AND 担当 IN (SELECT 担当 FROM TableName WHERE 売上品 like '%胡瓜%') AND (売上品 LIKE '%竹輪%' OR 売上品 LIKE '%胡瓜%')
その他の回答 (1)
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
回答の前に・・ > SELECT 担当, 商品, 売上品 FROM TableName > WHERE 担当 IN (SELECT 担当 FROM TableName WHERE 売上品 = '竹輪') > AND 担当 IN (SELECT 担当 FROM TableName WHERE 売上品 = '胡瓜') > AND 売上品 IN ('竹輪','胡瓜') というSQLは、 SELECT 担当, 商品, 売上品 FROM TableName WHERE 売上品 IN ('竹輪','胡瓜') に等しくないですか?(無駄に難しく書いてるように思いますけど??) で、回答ですが・・ WHERE 売上品 IN ('竹輪','胡瓜') は、 WHERE 売上品 = '竹輪' or 売上品 = '胡瓜' と同じなので、 SELECT 担当, 商品, 売上品 FROM TableName WHERE 売上品 like '%竹輪%' or 売上品 like '%胡瓜%' のような記述が適正かと思いますよ。