【问题标题】:MySQL: UPDATE table with COUNT from another table?MySQL:使用另一个表中的 COUNT 更新表?
【发布时间】:2013-04-17 12:14:13
【问题描述】:

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

我有一张表tbl1,它有列id,otherstuff,num

我有另一个表 tbl2,它有列 id,info

我想要的是使tbl1num 列等于tbl2 中具有相同id 的行数。有点像这样:

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

有什么想法吗?

【问题讨论】:

  • 你试过了吗?看起来很像this 答案。
  • 多么奇怪。我不认为我写的是正确的 SQL。

标签: mysql 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 时,会发生什么?
    猜你喜欢
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多