查找在SQL中最常见的记录

时间:2019-04-15 21:27:53

标签: mysql sql

我有一张成分表:

ing_id, ing_name
1      , ing1
...

一张食谱表:

rec_id, rec_name
1     , rec1
...

和显示两者之间联系的表格:

id, ing_id, rec_id
1,  1, 1
2,  1, 2
3,  2, 1
4,  3, 3
...

如何找到同一食谱中最常见的成分?

1 个答案:

答案 0 :(得分:2)

您可以使用自我联接和group by

select c1.ing_id, c2.ing_id, count(*)
from connections c1 join
     connections c2
     on c1.rec_id = c2.rec_id and c1.ing_id < c2.ing_id
group by c1.ing_id, c2.ing_id
order by count(*) desc;

如果您实际上想要的是名称而不是ID,则还需要两个联接才能将它们引入。