Mysql 如何执行多对多关系筛选查询
我想在MySQL中基于过滤器执行查询。首先,查询中将使用的两个表如下: 设备: 领域 类型 身份证件 PK,整数 名称 瓦查尔(50) 请尝试以下查询:Mysql 如何执行多对多关系筛选查询,mysql,sql,many-to-many,Mysql,Sql,Many To Many,我想在MySQL中基于过滤器执行查询。首先,查询中将使用的两个表如下: 设备: 领域 类型 身份证件 PK,整数 名称 瓦查尔(50) 请尝试以下查询: SELECT P.EquipmentID, E.Name FROM Pivot P JOIN Equipments E ON P.EquipmentID=E.Id WHERE E.RecipeId IN (1,2,3) GROUP BY P.EquipmentID, E.Name HAVING COUNT(*)=3; 加入Pivot和设备
SELECT P.EquipmentID, E.Name
FROM Pivot P
JOIN Equipments E ON P.EquipmentID=E.Id
WHERE E.RecipeId IN (1,2,3)
GROUP BY P.EquipmentID, E.Name
HAVING COUNT(*)=3;
Pivot
和设备
表,其中E.RecipeId位于(1,2,3)
分组
代码>对于任何一组出现3次的P.EquipmentID,E.Name
;有效地符合“仅在Receipe 1,2,3中出现的设备ID”的条件
我很困惑。。。您可以为这两个表发布几行数据示例,暂时跳过
JSON
。关注如何在纯MySQL中获得结果,然后只转换为所需的JSON
输出。顺便说一句,试着写一个查询并在那里实现你的条件。它不必是一个工作查询。。一个可以说明你所追求的应该足够了。好的@FaNo_FN,我编辑了postSoPivot
是数据库中的一个真实表,对吗?不是通过查询生成的表?是的,是一个真实的表如果是这样的话,您似乎只需要对配方进行Pivot
检查并将与设备
表连接即可获得名称
。