7

我以为这很简单,但我无法理解它......

我有一张桌子,tbl1它有列id,,,。otherstuffnum

我有另一个表tbl2,它有列idinfo

我想要的是使 的numtbl1等于具有相同idin的行数tbl2。有点像这样:

UPDATE tbl1 SET num =
(SELECT COUNT(*) FROM tbl2 WHERE id=tbl1.id)

有任何想法吗?

4

2 回答 2

16

如果您的 num 列是有效的数字类型,则您的查询应该按原样工作:

UPDATE tbl1 SET num = (SELECT COUNT(*) FROM tbl2 WHERE id=tbl1.id)
于 2013-04-17T12:18:54.483 回答
11
UPDATE tbl1, (select id, count(*) as idCount from tbl2 group by id) as t2
SET    tbl1.num = t2.idCount
WHERE  tbl1.id = t2.id;
于 2013-04-17T12:18:04.273 回答