MySql根据满足条件的项数查找结果和订单结果

MySql根据满足条件的项数查找结果和订单结果,mysql,Mysql,我有一个表“集合”与表“项目”有n-n关系: 我想找到一个集合,其中包含的项可以有名称,比如:“item1”或“item2”或“item3”。并按满足条件的项数排序。IE集合有3项满足条件,首先是“item1”、“item2”、“item3”,然后集合有2项满足条件,最后集合有1项满足条件 有人能帮我吗,谢谢你看:我不明白,先生。他建议你提供更多关于你所拥有和需要的数据。只需阅读链接文章谢谢,但分组方式仅显示每组的第一项,如何显示每组的所有项您需要提供一些数据示例以及您想要的结果。您的问题是您只

我有一个表“集合”与表“项目”有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