mysql - 用另一个计数更新表

标签 mysql sql

我正在尝试用另一个表的计数更新一个表。我想我的查询结构是正确的,但我一直收到 SQL 错误:

UPDATE c
SET c.sales = p.ProductCount
FROM products c
INNER JOIN
(SELECT p_key, COUNT(*) AS ProductCount 
FROM sales
GROUP BY p_key) p
ON c.link = p.p_key

两个表的结构:

产品 产品名称(varchar), 销售(国际), 链接(字符),

销售 电子邮件(字符), p_key(字符)

我刚刚展示了关键列。任何帮助表示赞赏。

最佳答案

您正在为 T_SQL 使用连接语法,在 MySQL 中执行此操作,

UPDATE  products c
        INNER JOIN 
        (
            SELECT  p_key,
                    COUNT(*) AS ProductCount
            FROM sales
            GROUP BY p_key
        ) p
            ON c.link = p.p_key
SET c.sales = p.ProductCount

关于mysql - 用另一个计数更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12769716/

相关文章:

mysql - 在更新时使用 UNIX_TIMESTAMP 而不是时间戳

php - PDO 绑定(bind)参数不起作用

PHP MySQL如何关联一个表行中的两个字段?

mysql - 按从多个表收集的日期对行进行排序?

mysql.data 在我的 Entity Framework 项目中发生冲突

sql - (Oracle) 如何对行进行分组以进行分页

python - 获取日期和时间的时间戳

sql - 仅更新 mysql DateTime 字段中的时间

sql - 如何在 SQL Server 中删除或截断表?

mysql - 如何编写一个接一个地更新两个表的触发器