在mysql中选择与所有其他给定文件连接的文件

时间:2016-03-13 20:59:53

标签: mysql

我正在努力解决一个SQL查询,它将使我能够遵循以下场景。我们有一个多对多表,例如:

ingridient - object

糖 - 蛋糕

牛奶 - 蛋糕

牛奶 - 饼干

糖 - 饼干

盐 - 菜

盐 - 蛋糕 ...

我需要一个SQL查询来使我能够选择所有具有所有ingridients的对象。如果我通过糖和牛奶,我应该得到蛋糕和库克,如果我通过牛奶,糖和盐,我应该只得到蛋糕等。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

SELECT object, GROUP_CONCAT(ingridient) AS ingredients
FROM (
    SELECT object, ingridient
    FROM tbl
    ORDER BY ingridient
) subQuery
GROUP BY object
HAVING ingredients = 'milk,salt,sugar'

但请注意,您为HAVING子句提供的成分列表必须按字母顺序排序。