我正在将数据聚集在一个表中,并且基本上将数据从一个表移动到另一个表。
当前,我正在从MySQL中选择所有数据,然后将其重新插入新表中。
是否有一种方法可以组合此查询以在MySQL内完成所有操作,而不是先取出数据再取回?
基本上,我想结合以下内容:
'''update landing_pages_v3 set mobile_first_place_rankings=%s where id=%s''', data
'''select count(keyword), lp_id from keywords_v3 where profile_id=%s and device=%s and positions=1 group by lp_id''', (profile_id, device)
答案 0 :(得分:1)
您可以JOIN
将该查询作为子查询在UPDATE
中进行:
UPDATE landing_pages_v3 AS l
JOIN (
SELECT count(*) AS ct, lp_id
FROM keywords_v3
WHERE profile_id=%s AND device=%s AND positions=1
GROUP BY lp_id
) AS k ON l.id = k.lp_id
SET mobile_first_place_rankings = k.ct