我想知道这是否可能只使用一个 MySQL 查询。
我正在做的是一个标签系统。因此,我有两个表:
Tags, id | heading
Tagged, id | image_id | tag_id | timestamp | strength
一切正常,但现在我已经到了向我的用户显示标签并计划按标签使用次数对它们进行排序的阶段。
所以简而言之,我需要一些可以执行以下操作的东西,
- 获取当前显示的图像的所有标签,例如
id = 34
. - 计算标签被使用了多少次。
- 按这些结果排序标签列表,从高到低。
现在我已经尝试研究连接、左连接等,但是这一切看起来都非常压倒性,我发现很难掌握它。
如果有人可以轻松地解释如何做到这一点,那就太好了!
编辑
我目前有这个
SELECT tags.id, COUNT( tagged.id ) AS count
FROM tags
INNER JOIN tagged ON tags.id = tagged.tag_id
WHERE tagged.image_id = '1'
GROUP BY tags.id
ORDER BY count DESC
这只返回标签被标记到当前 image_id 的次数,我将如何使它从所有图像中计数?