MySQL:使用另一个表中的 COUNT 更新表?
Posted
技术标签:
【中文标题】MySQL:使用另一个表中的 COUNT 更新表?【英文标题】:MySQL: UPDATE table with COUNT from another table? 【发布时间】:2013-04-17 12:14:13 【问题描述】:我认为这很简单,但我无法理解它......
我有一张表tbl1
,它有列id
,otherstuff
,num
。
我有另一个表 tbl2
,它有列 id
,info
。
我想要的是使tbl1
的num
列等于tbl2
中具有相同id
的行数。有点像这样:
UPDATE tbl1 SET num =
(SELECT COUNT(*) FROM tbl2 WHERE id=tbl1.id)
有什么想法吗?
【问题讨论】:
你试过了吗?看起来很像this 答案。 多么奇怪。我不认为我写的是正确的 SQL。 【参考方案1】:如果您的 num 列是有效的数字类型,则您的查询应该按原样工作:
UPDATE tbl1 SET num = (SELECT COUNT(*) FROM tbl2 WHERE id=tbl1.id)
【讨论】:
【参考方案2】:UPDATE tbl1, (select id, count(*) as idCount from tbl2 group by id) as t2
SET tbl1.num = t2.idCount
WHERE tbl1.id = t2.id;
【讨论】:
这是一个完美的解决方案,在大桌子上速度极快。谢谢。 当 tbl1 行对应的列数为 0 时,会发生什么?以上是关于MySQL:使用另一个表中的 COUNT 更新表?的主要内容,如果未能解决你的问题,请参考以下文章