MySql根据满足条件的项数查找结果和订单结果
我有一个表“集合”与表“项目”有n-n关系: 我想找到一个集合,其中包含的项可以有名称,比如:“item1”或“item2”或“item3”。并按满足条件的项数排序。IE集合有3项满足条件,首先是“item1”、“item2”、“item3”,然后集合有2项满足条件,最后集合有1项满足条件MySql根据满足条件的项数查找结果和订单结果,mysql,Mysql,我有一个表“集合”与表“项目”有n-n关系: 我想找到一个集合,其中包含的项可以有名称,比如:“item1”或“item2”或“item3”。并按满足条件的项数排序。IE集合有3项满足条件,首先是“item1”、“item2”、“item3”,然后集合有2项满足条件,最后集合有1项满足条件 有人能帮我吗,谢谢你看:我不明白,先生。他建议你提供更多关于你所拥有和需要的数据。只需阅读链接文章谢谢,但分组方式仅显示每组的第一项,如何显示每组的所有项您需要提供一些数据示例以及您想要的结果。您的问题是您只
有人能帮我吗,谢谢你看:我不明白,先生。他建议你提供更多关于你所拥有和需要的数据。只需阅读链接文章谢谢,但分组方式仅显示每组的第一项,如何显示每组的所有项您需要提供一些数据示例以及您想要的结果。您的问题是您只需要set.id
SELECT s.id
FROM set s
JOIN set_rel_item sri
ON s.id = sri.set_id
JOIN item i
ON sri.item_id = i.id
WHERE i.name in ('item1','item2','item3')
GROUP BY s.id
HAVING COUNT(DISTINCT i.name) >= 1
ORDER BY COUNT(DISTINCT i.name) DESC
SELECT s.id
FROM set s
JOIN set_rel_item sri
ON s.id = sri.set_id
JOIN item i
ON sri.item_id = i.id
WHERE i.name in ('item1','item2','item3')
GROUP BY s.id
HAVING COUNT(DISTINCT i.name) >= 1
ORDER BY COUNT(DISTINCT i.name) DESC