我有两个表:codes_tags 和 popular_tags。
代码标签
CREATE TABLE `codes_tags` (
`code_id` int(11) unsigned NOT NULL,
`tag_id` int(11) unsigned NOT NULL,
KEY `sourcecode_id` (`code_id`),
KEY `tag_id` (`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
流行标签
CREATE TABLE `popular_tags` (
`id` int(10) unsigned DEFAULT NULL,
`count` int(10) unsigned DEFAULT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
抱歉,如果这个问题有点基础,但这是我正在尝试做的。我正在尝试从 code_tags 中选择 10 个 tag_id - 这些标签将是副本最多的 10 个(例如,可能有 30 条记录的 tag_id 为 7,因此如果它是最高的之一,则会选择 7) .然后我将两个值插入 popular_tags:tag_id 和该标签的标签计数。
我该怎么做?
最佳答案
沿着这些线的东西:
insert into popular_tags (id, `count`)
select
tag_id,
count(*),
from codes_tags
group by
tag_id
order by
count(*) desc
limit 10
关于MySQL 选择计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1345174/