由于它的地理功能,我正在将我的数据库从MySQL迁移到PostgreSQL / PostGIS,而过去那些微不足道的SQL现在正变得越来越难以克服。
在这种情况下,我使用嵌套查询来获取两列中的结果,在第一列中具有ID,在第二列中具有计数结果,并将这些结果插入到table1中。 编辑:这是我需要在PostgreSQL中使用的原始MySQL工作代码:
UPDATE table1 INNER JOIN (
SELECT id COUNT(*) AS cnt
FROM table2
GROUP BY id
) AS c ON c.id = table1.id
SET table1.cnt = c.cnt
结果是所有行都具有相同的计数结果,即嵌套选择的第一个计数结果。 在MySQL中,这很容易解决。 如何在PostgreSQL中工作? 谢谢!
答案 0 :(得分:0)
UPDATE table1 dst
SET cnt = src.cnt
FROM (SELECT id, COUNT (*) AS cnt
FROM table2
GROUP BY id) as src
WHERE src.id = dst.id
;