SQLの条件検索について
下記のような「果物TBL」というテーブルがあるとします。
果物TBL
--------------------------------
ID 名前 値段
- - - - - - - - - - - - - - - - - - - -
01 りんご 150
02 バナナ 250
03 みかん 250
04 ぶどう 300
--------------------------------
また上記のテーブルと全く同じ構成の「果物検索TBL」というテーブルがあるとします。
そのテーブルには、例として下記のような値を入れておきます。
果物検索TBL
--------------------------------
ID 名前 値段
- - - - - - - - - - - - - - - - - - - -
NULL りんご 250
NULL バナナ NULL
--------------------------------
この時、下記のようなSQLだと
SELECT DISTINCT 果物TBL.名前
FROM 果物TBL INNER JOIN 果物検索TBL ON
(果物TBL.ID = 果物検索TBL.ID AND LEN(果物検索TBL.ID) > 0) OR
(果物TBL.名前 = 果物検索TBL.名前 AND LEN(果物検索TBL.名前) > 0) OR
(果物TBL.値段 = 果物検索TBL.値段 AND LEN(果物検索TBL.値段) > 0);
--------------------------------
名前
- - - - - - - - - - - - - - - - - - - -
バナナ
みかん
りんご
--------------------------------
という結果になります。(名前:りんご・バナナと値段:250のOR検索)
その結果を
--------------------------------
名前
- - - - - - - - - - - - - - - - - - - -
バナナ
--------------------------------
という結果にするにはどうすればいいでしょうか?(名前:りんご・バナナと値段:250のAND検索、バナナのみマッチ)
単純にORをANDにしてもうまくいきませんでした。
動的にSQLを作れれば良いのですが、この構成は変えられないのでNULL値がネックになり分かりません。
教えてください。
また、記載してるSQLよりもっとスマートな書き方があれば教えてください。
お礼
ありがとうございます。さっそくアクセスしてアサイーを注文しました。貧血のひどい友人にあげたくて、このサイトを探していました。嬉しいです。