この件、自己解決しました。
SQLって、WHEREの部分を入れ子にできるんですね。
どこにもその解説を見つけられずに苦労しました。。
最初は、クエリのSQLの中に、
**表計算で使用するIF関数(IIFではなく)**を書き込む方法はないのだろうか?と考え、
あちこち調べて嵌りまくってたのですが見つからず疲れ果ててしまいました。
煮詰まって嫌になり、諦めた後、ボーっと他の話題を眺めていたら。
WHEREの入れ子を~という言葉を見つけ、
ダメもとで以下を書いてみたら、あっけなく成功しました。
手順は以下です。
- “料理名検索” という、1列(1フィールド)のみのテーブルを作成。
- “料理名検索” の中に、"料理名"というフィールドを作成。
- “検索フォーム” という、1つのテキストボックスを作成したフォームを作成。
- 上記(3)のテキストボックスに “料理名” を記入すると、(2)の1行目が書き換わるようにする。
その上で、以下のSQLを記載したクエリを作成。
SELECT "食材"
FROM "料理と食材"
WHERE (
SELECT "料理名"
FROM "料理名検索"
)
IN ("料理1","料理2","料理3","料理4","料理5")
ちなみに FIREBIRD でも HSQLDB でも同じように動いてくれました。
FIREBIRD 側の中の全ての関連フィールドは VARCHAR で統一しています。