使用count时从另一个表更新一个表?

时间:2011-01-28 18:45:34

标签: mysql

我的stats表包含字段id(int)和timestamp(timestamp)。

SELECT id FROM stats  GROUP BY id ORDER BY count(id) DESC LIMIT 10; 

给我前十名。

我想把这些id放到另一个'流行'的表中

热门有字段id(int),position(int)和timestamp(timestamp)。

总结一下,我想创建一个查询,用于更新流行表格,其中包含统计表格中的“前10名”。

1 个答案:

答案 0 :(得分:1)

INSERT INTO `popular` (`id`,`position`,`timestamp`)
(
   SELECT `id`,COUNT(`id`),NOW() 
   FROM `stats` GROUP BY `id` 
   ORDER BY COUNT(`id`) DESC LIMIT 10
)

但它不是完全更新。这会将stats中的新“前10名”条目添加到popular,但保留“旧前10名”。在TRUNCATE之前可能需要popular

更新: TRUNCATE TABLE将清空给定的表格。它与DELETE FROM几乎完全相同,但它也会重置auto_increment的所有主键。