使用另一个计数更新表

时间:2012-10-07 14:33:18

标签: 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

两个表的结构:

产品 product_name(varchar), 销售(int), link(char),

销售 电子邮件(char), p_key(char)

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

2 个答案:

答案 0 :(得分:16)

您正在使用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

答案 1 :(得分:5)

这是正确的语法:

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