FOOD と INGREDIENTS の 2 つのテーブルがあります。特定の食品を作るために必要なすべての食材を選択したい。
私はこのようなことができると思いました:
select NAME from INGREDIENTS
where ID in (select ING1_ID, ING2_ID, ING3_ID from FOOD where NAME = 'Meat soup')
「in」サブ選択クエリでコンマ区切りの ID の文字列を渡す必要があるため、これは明らかに機能しません。列の値のリストを文字列に変換することを検討していましたが、いくつかの解決策がありますが、これを複雑にしすぎて、データベース モデルが間違っているのではないかと考え始めました。
食品テーブル:
ID | NAME | ING1_ID | ING2_ID | ING3_ID
--------+---------------+----------+----------+--------
1 | Meat soup | 1 | 2 | 3
2 | Pasta Bolo | 3 | 4 | 5
3 | Chicken salad | 2 | 4 | 5
成分表:
ID | NAME
--------+-----------
1 | pasta
2 | onion
3 | oil
4 | paprika
5 | chicken
6 | cucumber