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

MySQL Đếm các bản ghi phù hợp từ nhiều bảng

Một cách khác để viết lại truy vấn này.

Nhóm và đếm từng bảng riêng lẻ, sau đó tham gia:

SELECT  a.id, 
        COALESCE(b.t1, 0) AS t1,
        COALESCE(c.t2, 0) AS t2,
        COALESCE(d.t3, 0) AS t3
FROM
        entity a
    LEFT JOIN
        ( SELECT ei,
                 COUNT(*) AS t1
          FROM table1
          GROUP BY ei
        ) AS b
            ON a.id = b.ei
    LEFT JOIN
        ( SELECT ei,
                 COUNT(*) AS t2
          FROM table2
          GROUP BY ei
        ) AS c
            ON a.id = c.ei
    LEFT JOIN
        ( SELECT ei,
                 COUNT(*) AS t3
          FROM table3
          GROUP BY ei
        ) AS d
            ON a.id = d.ei
  ;

Bạn chắc chắn nên thêm chỉ mục trên (ei) trên mỗi bảng trong số 3 bảng, nếu bạn chưa có.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bảng truy vấn mỗi giây để thông báo. Nó có phải là một thực hành tốt?

  2. Cách cải thiện hành vi khóa CHÈN VÀO ... CHỌN

  3. Định nghĩa của cardinality trong SQL là gì

  4. Các phương pháp hay nhất để lưu trữ hiệu quả các băm md5 trong mysql

  5. PHP PDO truy vấn nhiều lựa chọn liên tục loại bỏ bộ hàng cuối cùng