了2桌/实体,非常简单的场景。MySQL的:从一数个表中的记录,然后更新另一个
表诗人 - 列:ID,诗人,国家
表国家 - 列:ID,民族,数
基本上,国家到诗人有一个的映射很多,自然而然。例如,来自60个国家的1000位诗人。在诗人每个诗人是通过其中包含的国家之一,在国家的ID民族领域分配给国家。
各国的计数字段包含诗人这个国家的诗人数。
我的问题是如何使用只有一个SQL查询来统计诗人国家的诗人数,然后更新该国的相应计数?
我想:
UPDATE poets, nations SET nations.count = COUNT(poets.id) GROUP BY poets.nation HAVING poets.nation = nations.id
但它给#1064错误。还尝试在某处合并WHERE子句,但它仍然拒绝工作。
有什么想法?
谢谢,这有效果! – 2009-08-01 08:42:37
请注意,对于非常大的表格(500000+条记录),这可能会变得非常缓慢。 – dusoft 2009-08-01 09:07:21