MySQL Выбор количества - PullRequest
       15

MySQL Выбор количества

0 голосов
/ 28 августа 2009

У меня есть две таблицы: code_tags и Popular_tags.

codes_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

popular_tags

CREATE TABLE `popular_tags` (
 `id` int(10) unsigned DEFAULT NULL,
 `count` int(10) unsigned DEFAULT NULL,
 KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

Извините, если этот вопрос немного простой, но вот что я пытаюсь сделать. Я пытаюсь выбрать десять tag_id из code_tags - эти теги будут десятью, из которых больше всего копий (например, может быть 30 записей с tag_id 7, поэтому 7 будет выбрано, если это будет один из самых высоких) , Затем я вставляю два значения в популярные_ теги: идентификатор тега и количество тегов для этого тега.

Как я могу это сделать?

Ответы [ 2 ]

4 голосов
/ 28 августа 2009

Что-то вроде этого:

insert into popular_tags (id, `count`)
select
    tag_id,
    count(*),
from codes_tags
group by
    tag_id
order by
    count(*) desc
limit 10
3 голосов
/ 28 августа 2009
INSERT INTO popular_tags (id, `count`)
SELECT tag_id, count(*) FROM codes_tags 
GROUP BY tag_id ORDER BY count(*) DESC LIMIT 10
...