4

我试图用另一个表的计数来更新一个表。我认为我的查询结构正确,但我不断收到 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)、sales (int)、link (char)、

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

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

4

2 回答 2

16

您正在使用连接语法 for 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
于 2012-10-07T14:39:24.620 回答
6

这是正确的语法:

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
于 2012-10-07T14:38:33.793 回答