我有 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