连接查询的伯爵在MySQL声明
问题描述:
我有三个数据库表,我想选择song_tag表,10个最常用的标签,我可以用下面
SELECT `tag_id`,
COUNT(`tag_id`) AS `value_occurrence`
FROM `song_tag`
GROUP BY `tag_id`
ORDER BY `value_occurrence` DESC
LIMIT 10;
SQL查询做
然后,我将如何从同一个查询中的标签表中获取标签名称值?它甚至有可能吗?我已经设置了一些虚拟数据和三个需要的表(链接在帖子的顶部)。
这将用于wordpress wpdb查询。我不认为有关配置设置,语言等的其他内容不会增加。
答
您需要将标记表加入到结果中。所以像这样:
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;
答
回答你的评论,让我可以格式化。
我个人不知道如何在歌曲的单行中获取所有标签,但是,我们可以创建一个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";
嗨布兰登,那工作的一种享受谢谢你。必须等待接受答案,但会 –
只是出于好奇@BrandonM我将如何去选择一个基于id的歌曲,并抓住一个查询与一首歌曲相关的所有标签? –
回答下面有格式。 – BrandonM