• 締切済み

複数の条件での絞り込み検索の仕方

My SQLで複数の条件での絞り込み検索をしたいのです。 TABLEAのSHOHINCDという項目をキーにして、 TABLEBにて上記で抽出したSHOHINCDを LIKE IN で抽出したいのですがどう記述したらよいのでしょうか。 初歩的な質問ではありますが、宜しくお願い致します。

みんなの回答

  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.3

どういう要件ですか? 受け取ったイメージは以下の要件なので無理! tableA SHOHINCD A101 A201 A301 の3件が抽出されると、 tableB SHOHINCD X-A101b A101c A101 XYZ-BA201 XYY-A301 A301xxyz 等がすべて取得できる必要がある。 言い換えると、 SHOHINCD like '%A101%' or SHOHINCD like '%A201%' or SHOHINCD like '%A301%' と、tableAから抽出されたSHOHINCDを含むSHOHINCDを持つtableBのレコードすべて 出力したい、と読み取れました。 Likeの文字列を可変にするのは無理です。 条件が違っているなら、やりようはあるかもしれません。。。 例えば、tableBの2文字目から4文字目がtableAから抽出されたSHOHINCDと一致するレコード とかならできます。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

SQLのかなり基本だと思うのですが、釣りじゃないなら 普通にJOINするだけじゃないの? SELECT * FROM TABLEB AS B INNER JOIN TABLEA AS A ON A.SHOHINCD = B.SHOHINCD

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

MySQLってlike in なんですか?Oracleだと like と inは別なんですが。 tableBのSHOHINCDのうち、tableAのSHOHINCDに存在するものを検索するのであれば select * from tableB where tableB.SHOHINCD in (  select SHOHINCD  from tableA ) ; #()でインデントのために全角スペース使ってるので、取り除いてください。

speedneedcrash
質問者

補足

すいません’と’が抜けてました。 LIKEとINを使って抽出ですね。 イメージとしてはこんな感じで抽出できればな。。。と思ってたんですが ----- SELECT * FROM TABLEB WHERE 1=1 AND SHOHINCD LIKE ( SELECT SHOHINCD FROM TABLEA ) -----

関連するQ&A