SELECT book_id, MAX(time) FROM orders GROUP BY book_id;
然後將結果存在變數,用迴圈執行很多次以下SQL 語法(有幾本書執行幾次):
INSERT INTO orderlist (book_id, last_time) VALUES (查出來的書ID, 查出來的時間);
但是其實有更帥的方法,只要一行語法
如果我們要將查出來的資料直接插入資料表中(達到上述效果),我們其實可以用以下語法:
INSERT INTO orderlist (book_id, last_time) SELECT book_id, MAX(time) FROM orders GROUP BY book_id;
或者我們想要將查詢結果直接開新資料表儲存:
CREATE TABLE orderlist SELECT book_id, MAX(time) FROM orders GROUP BY book_id;
這樣一來:
- 減少執行{資料列數}次的SQL 語法(只要執行一次)
- 減少程式記憶體的存取量
- 減少程式碼並消除無用的邏輯
讀者回應 ( 0 意見 )
訂閱張貼留言 (Atom)
張貼留言
如果沒有帳戶,建議使用「名稱/網址」留言喔^^