我认为这很简单,但我不能理解它......
我有一个表tbl1
,它有id
,otherstuff
,num
列。
我有另一张表tbl2
,它有id
列,info
。
我想要的是num
列的tbl1
列等于id
中tbl2
相同的行数。有点像这样:
UPDATE tbl1 SET num =
(SELECT COUNT(*) FROM tbl2 WHERE id=tbl1.id)
有什么想法吗?
答案 0 :(得分:11)
如果您的num列是有效的数字类型,则查询应该按原样运行:
UPDATE tbl1 SET num = (SELECT COUNT(*) FROM tbl2 WHERE id=tbl1.id)
答案 1 :(得分:10)
UPDATE tbl1, (select id, count(*) as idCount from tbl2 group by id) as t2
SET tbl1.num = t2.idCount
WHERE tbl1.id = t2.id;