我有 2 张桌子:
stock:
pid name qty
--- ---- ---
1 aaaa 2
2 bbbb 3
1 aaaa 5
3 cccc 1
2 bbbb 2
stock_total:
pid name total_qty
--- ---- ---------
我可以使用此查询从stock
表中插入总数量的行stock_total
INSERT INTO stock_total (pid, name, total_qty)
SELECT pid, name, SUM(qty)
FROM stock
GROUP BY pid, name
问题是,我将通过 cron 作业运行上面的 SQL。所以在下一次执行时,SQL 应该更新现有产品并插入不存在的产品。
如果我遍历 SELECT 结果,检查每一行是否存在stock_total
并执行 INSERT 或 UPDATE,这将是非常低效的。
有没有更简单的方法来实现这一点?也许通过修改上面的SQL。谢谢。