我有三个db表,我想从song_tag表中选择10个最常用的标签,我可以使用下面的sql查询
SELECT `tag_id`,
COUNT(`tag_id`) AS `value_occurrence`
FROM `song_tag`
GROUP BY `tag_id`
ORDER BY `value_occurrence` DESC
LIMIT 10;
我如何从同一查询中的tags表中获取标记名称值?它甚至可能吗?我已经设置了一些虚拟数据以及需要的三个表格。(链接在帖子的顶部)。
这将用于wordpress wpdb查询。我不认为还有很多关于配置设置,语言等的补充。
答案 0 :(得分:1)
您需要将标记表加入到结果中。如下所示:
SELECT s.tag_id, COUNT(s.tag_id) AS value_occurrence, t.name
FROM song_tag s LEFT JOIN tags t
ON s.tag_id = t.id
GROUP BY s.tag_id
ORDER BY value_occurrence DESC
LIMIT 10;
答案 1 :(得分:1)
在此回答您的评论,以便我可以格式化。
我个人不知道如何用歌曲将所有标签放在一行中,但是,我们可以创建一个SELECT语句,将所有标签与不同行中的歌曲相关联。它看起来像
SELECT s.title, t.name
FROM songs s LEFT JOIN song_tag st
ON s.id = st.song_id
LEFT JOIN tags t
ON st.tag_id = t.id
WHERE s.id = "123";