Mysql
如何從另一個表中按 FK 的 COUNT 更新列?
如何將此查詢擴展到整個表,以更新所有
id
s?UPDATE table1 SET number=( SELECT COUNT(*) FROM table2 where id=1 ) WHERE id=1
id
是在表PRIMARY KEY
1 和FK
表 2 中。如何通過計算table2中具有相同id
WHERE
的行數來刪除更新table1每一行的子句?FK
您可以對聚合計數的子查詢執行
UPDATE JOIN
oftable1``id``table2
UPDATE table1 A INNER JOIN (SELECT id,COUNT(1) idcount FROM table2 GROUP BY id) B USING (id) SET A.number = B.idcount;
這個查詢不會得到每一個
id
. 為什麼?如果id
intable1
中缺少 intable2
,則不會在numbers
列中寫入零。要覆蓋 中
id
缺少的值table2
,請執行以下命令:UPDATE table1 A LEFT JOIN (SELECT id,COUNT(1) idcount FROM table2 GROUP BY id) B USING (id) SET A.number = IFNULL(B.idcount,0);
試一試 !!!