mysql - count in mysql更新mysql查询,错误支持

标签 mysql sql sql-update jointable

你好需要更新从...开始

 SELECT 
     tA.id, count(*) c
FROM
    tA
        join
    tA ON tB.id = tA.id
where
    tA.id = 5
GROUP BY tA.id
having c > 1;

我有一个一对多的关系模型。但需要在更新中包含计数

   UPDATE tA
        join
    tA ON tB.id = tA.id 
set 
    cnt = 5;

假设这是计数的结果

其中“c”是第一个选择计数...可能是。

UPDATE tA
        join
    tA ON tB.id = tA.id 
set 
    cnt = (SELECT 
            count(*) c
        FROM
            tA
                join
            tA ON tB.id = tA.id
        WHERE
            tA.id = 5
        GROUP BY tA.id
        having c > 1);

说查询语法也不支持..thnk

最佳答案

UPDATE  tA
        INNER JOIN
        (
            SELECT  tA.id, COUNT(*) totalCount
            FROM    tA INNER JOIN tB ON tB.id = tA.id
            WHERE   tA.id = 5
            GROUP   BY tA.id
            HAVING  COUNT(*) > 1
        ) b ON tA.id = b.id
SET     tA.cnt = b.totalCount

关于mysql - count in mysql更新mysql查询,错误支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16600362/

相关文章:

php - Laravel leftJoin 现在显示结果

mysql - sql 子查询返回 "Every derived table must have its own alias"

mysql - 在 mysql 中有更好的方法吗? - 用另一个选择和分组更新整个列

mysql - 每当我提交表单时都会出现 sql 错误

php - 如何将字符串转换为变量以在服务器代码中使用

mysql - 使用左连接语法 SQL

sql - 复合 PK 部分的外键

c# - 基于表的一个字段在 Linq 中区分

mysql - 使用 MySQL 从一个表更新另一个表时如何处理 NULL

MySQL 使用 CAST 更新列值