我有餐 table 披萨。它包括成本、ID、(披萨的)名称和成分等字段。 我还有表格成分,带有成分名称和 ID。如何放入餐 table 披萨配料(例如 1、2、4、15),并能够从餐 table 配料中获取该配料名称?
Table Pizza:
id name cost ingredients
1 Vegie Pizza 12,59 1,2
Table Ingredients
id name
1 cheese
2 broccoli
3 pepperoni
我想获取示例名称和成分:
Vegie Piza - cheese, broccoli - 12,59
或者可以订购带有意大利辣香肠的素食披萨。
如何按照我描述的方式连接这两个表?
最佳答案
首先,不要将关系存储为逗号分隔值,而是使用联结表来关联 2 个实体,请参阅 Database Normalization
对于您当前的解决方案,您需要在连接条件中使用find_in_set
select p.id,group_concat(i.name) ingredients,p.cost
from
Pizza p
join Ingredients i on(find_in_set(i.id,p.ingredients) > 0)
group by p.id
Fiddle Demo
关于mysql - 如何在一行中包含多行引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25349052/