私は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
問題は、上記のSQLをcronジョブで実行することです。したがって、次の実行時に、SQLは既存の製品を更新し、存在しない製品を挿入する必要があります。
SELECTの結果をループし、各行が存在するかどうかを確認stock_total
して、INSERTまたはUPDATEを実行すると、非常に非効率になります。
これを達成するためのより簡単な方法はありますか?おそらく上記のSQLを変更することによって。ありがとう。