【发布时间】:2016-07-13 14:00:59
【问题描述】:
我有以下 select 语句,它计算一个值在连接表中出现的次数:
SELECT table1.idx, count(table1.idx) FROM
(table2 INNER JOIN table1 ON table1.id=table2.id AND table2.value = 'target')
GROUP BY table1.idx;
现在我想用这些结果更新第三个表,设置 table3.idx = table1.idx 的计数。我试过了
UPDATE table3 SET count_col=joined_table.c FROM
(SELECT table1.idx, count(table1.idx) FROM
(table2 INNER JOIN table1 ON table1.id=table2.id AND table2.value = 'target')
GROUP BY table1.idx
) joined_table WHERE table3.idx = table1.idx;
按照How do I UPDATE from a SELECT in SQL Server? 的建议,也尝试过
UPDATE table3 SET count_col=(
SELECT COUNT(table1.idx)
FROM (table1 INNER JOIN table2 ON table1.id=table2.id AND table2.value = 'target')
GROUP BY table1.idx
WHERE table3.idx = table1.idx);
按照MySQL - UPDATE query based on SELECT Query 中的建议,但它们都不起作用。正确的语法是什么?
【问题讨论】:
标签: mysql sql-update inner-join