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