bảng trên là LineItem, dưới là Orders.
Total = SUM(price của LineItem Group by order_id)
Làm thế nào để e update cột total của bảng Orders đc ạ?
bảng trên là LineItem, dưới là Orders.
Total = SUM(price của LineItem Group by order_id)
Làm thế nào để e update cột total của bảng Orders đc ạ?
nếu bạn update giá trị total là 100 (số cụ thể luôn) thì câu update sẽ như thế nào
À em làm đc rồi. Ban đầu e lại để where ở ngoài lên nó sai, mò 1 lúc thì cho whew trong và đúng rồi
Update Orders
set total = (select SUM(price) from LineItem where Orders.order_id = LineItem.order_id Group by order_id )
đúng vậy
mình đang mong đợi một câu trả lời kiểu
Update Orders set total = 100
sau đó mình sẽ đặt vấn đề là thay số 100 đó bằng một câu query sum trong bảng lineitem với order id trong đó, và bạn đã tự làm được trước khi ra gợi ý
tuy nhiên câu trên không cần group by (dư thừa), vì đã có where rồi
một góp ý khác nữa là thường thì người ta không lưu trong db những field kiểu total như vậy, có thể là dùng view hoặc khi query thì lấy ra cột đó
vì khi lưu thì để đảm bảo tính nhất quán, bạn sẽ cần phải update mỗi khi có thay đổi total, nếu chỉ có 1 chỗ hoặc không có chỗ nào update thì còn đỡ, nếu có nhiều nguồn tác động thì khá mệt mỏi
(cũng có nhiều cách giải quyết như trigger, event listener, job … nhưng không lưu thì không cần giải quyết)