• ベストアンサー

あいまい検索の仕方で・・・

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 ('竹輪','胡瓜')はどうすればよいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.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)

回答No.1

回答の前に・・ > 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 '%胡瓜%' のような記述が適正かと思いますよ。

関連するQ&A