有 2 个表/实体,非常简单的场景。
Table poets- 列:id、诗人、民族
Table nations- 列:id、国家、计数
基本上,nations to poets自然地具有一对多的映射。例如,有来自60个国家的1000位诗人。每位诗人在poets由包含其中一个国家的 ID 的国家字段分配给一个国家nations.
计数字段为nations包含诗人的数量poets来自这个民族。
我的问题是如何仅使用一个 SQL 查询来计算按国家/地区划分的诗人数量poets然后更新该国家对应的计数?
I tried:
UPDATE poets, nations SET nations.count = COUNT(poets.id) GROUP BY poets.nation HAVING poets.nation = nations.id
但它给出了#1064错误。还尝试在某处组合 WHERE 子句,但它仍然无法工作。
任何想法?
使用子查询:
UPDATE nations
SET count = (
SELECT COUNT(id)
FROM poets
WHERE poets.nation = nations.id
GROUP BY id
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)