JOIN · nhân dòng · đơn 12
JOIN hai bảng con rồi SUM: số bị nhân lên
Nhân dòng khi JOIN order_items và payments của đơn 12
Đơn 12 có 2 dòng hàng và 2 lần thanh toán; JOIN cả hai bảng theo order_id tạo 2 × 2 = 4 dòng, nên SUM tiền hàng và SUM amount đều ra 63.760.000 thay vì 31.880.000.
ORDERS o JOIN ORDER_ITEMS oi … JOIN PAYMENTS p … WHERE o.order_id = 12
ORDER_ITEMS · ĐƠN 12 · 2 DÒNG
product_id
tiền hàng
2
29.990.000
18
1.890.000
PAYMENTS · ĐƠN 12 · 2 DÒNG
payment_id
amount
36
15.000.000
37
16.880.000
KẾT QUẢ JOIN · 2 × 2 = 4 DÒNG
product_id
tiền hàng
payment_id
amount
2
29.990.000
36
15.000.000
18
1.890.000
36
15.000.000
2
29.990.000
37
16.880.000
18
1.890.000
37
16.880.000
SUM(tiền hàng)
63.760.000
SUM(amount)
63.760.000
đúng: 31.880.000
đúng: 31.880.000
Mỗi dòng hàng gặp từng lần thanh toán,
nên mọi phép SUM đều bị nhân đôi
© tiennhm