在特定情况下,如何连接两个mysql表

时间:2019-04-18 15:13:25

标签: mysql select

我有您的MySql表:“订单”和“成分”。在“订单”中,我有一个字段,其中成分作为字符串“ 1,2,3 ...”插入。在“成分”表中,我具有主要字段ID,另一个具有成分名称。如下:

enter image description here

当我选择“订单”表的id = 1时,是否可以使用SELECT来获取成分字符串“洋葱,苹果,猕猴桃...”?

1 个答案:

答案 0 :(得分:1)

理想情况下,应该将配料ID作为逗号分隔的列表存储。作为解决此错误设计选择的一种方法,您可以使用MySQL的FIND_IN_SET函数:

SELECT
    GROUP_CONCAT(i.name ORDER BY i.id) AS ingredients
FROM Orders o
INNER JOIN Ingredients i
    ON FIND_IN_SET(i.id, o.ingredientsid) > 0
GROUP BY
    o.id;

Demo