Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Mysql tham gia và tổng là kết quả nhân đôi

Nó tăng gấp đôi vì bạn có tiêu đề lặp lại trong bảng quỹ và doanh thu. Điều này nhân với số lượng bản ghi mà nó phù hợp. Điều này khá dễ dàng nhận thấy nếu bạn loại bỏ các hàm tổng hợp và xem dữ liệu thô. Xem tại đây

Cách để giải quyết vấn đề này là tạo các chế độ xem nội tuyến về các tổng hợp của bạn và tham gia vào các kết quả đó.

SELECT R.title_id, 
       R.revenue, 
       R.cost, 
       F.interest 
FROM   (SELECT title_id, 
               Sum(revenue) revenue, 
               Sum(cost)    cost 
        FROM   revenue 
        GROUP  BY revenue.title_id) r 
       LEFT JOIN (SELECT title_id, 
                         Sum(interest) interest 
                  FROM   fund 
                  GROUP  BY title_id) f 
              ON r.title_id = F.title_id 

đầu ra

| TITLE_ID | REVENUE | COST | INTEREST |
----------------------------------------
|        1 |      30 |   11 |       30 |
|        2 |      30 |   11 |       30 |
|        3 |      30 |   11 |       30 |
|        4 |      30 |   11 |       30 |

bản trình diễn



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ngừng sử dụng lại ID AUTO_INCREMENT của MySQL

  2. Nhận hàng gần đây nhất với nhóm theo và Laravel

  3. CHỌN VÀO và lỗi biến Không khai báo

  4. Mã PHP để chuyển đổi một truy vấn MySQL thành CSV

  5. lỗi mysqldump:Có gói lớn hơn max_allowed_packet '