我的情况是这样的:
我有 3 个表,其结构如下:
articles: article_id, more data;
tags: tag_id, tag_name, more data;
article_tags: article_tag_id, tag_id, article_id
每篇文章可以有多个标签。我想检索按使用该标签的总次数排序的文章的标签(提供了article_id)。
例如:
Article1 has tags 'tag4', 'tag3', 'tag2'
Article2 has tags 'tag4', 'tag3'
Article3 has tags 'tag4'
Article4 has tags 'tag4', 'tag3', 'tag2', 'tag1'
所以当我在寻找article4的标签时,它应该这样排序:
1. tag4 (4 occurrences)
2. tag3 (3 occurrences)
3. tag2 (2 occurrences)
4. tag1 (1 occurrence)
这可以通过一个 MySql 查询实现吗?目前我只是检索该文章的所有标签,然后是另一个数组,其中包含按出现次数排序的标签列表,然后只是使用后者手动对前一个数组进行排序。