好的,这就是我所拥有的。
stats
unique_key clicks
abcdefg 17
coolstuf 19
temp_stats
unique_key clickss
coolstuf 32
abcdefg 7
如何将“temp_stats”中的点击添加到“统计信息”中的点击次数并更新“统计信息”中的点击次数?
更新后统计信息会如下所示......
stats
unique_key clicks
abcdefg 24
coolstuf 51
现在我已经设法通过以下查询找出如何执行此操作...
UPDATE stats, (SELECT unique_key, NEW FROM (
SELECT *, (clicks + clickss) AS NEW FROM (
SELECT stats.unique_key, stats.clicks, temp_stats.clickss
FROM stats
JOIN temp_stats
ON stats.unique_key=temp_stats.unique_key
) AS TEMP1 ) AS TEMP2) AS TEMP3
SET clicks=NEW
WHERE stats.unique_key=TEMP3.unique_key
然而,它看起来像一个查询的混乱,我从内到外构建它。是否有更好,更有效/更优雅的方式来实现同样的目标?
答案 0 :(得分:1)
您可以在JOIN
上执行UPDATE
:
UPDATE stats JOIN temp_stats ON stats.unique_key = temp_stats.unique_key
SET stats.clicks = stats.clicks + temp_stats.clicks;
答案 1 :(得分:0)
试试这个:
UPDATE stats
INNER JOIN temp_stats ON stats.unique_Key=temp_stats.unique_Key
SET clicks = clicks + clicks
您无需完全选择连接表进行更新。
在MySQL 5.6上测试