Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL Брои съвпадащи записи от множество таблици

Друг начин за пренаписване на тази заявка.

Групирайте и пребройте във всяка таблица поотделно, след което се присъединете:

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
  ;

Определено трябва да добавите индекс към (ei) на всяка от 3-те маси, ако нямате такава.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL не използва индекс на DATE, когато се използва с оператори '<' или '>'?

  2. Вмъкване NOW() в базата данни с активния запис на CodeIgniter

  3. mysql грешка 2005 - Неизвестен хост на MySQL сървър 'localhost'(11001)

  4. MySQL заявка за изчисляване на предходния месец

  5. PHP Изберете от MySQL, където полето за дата е 7 дни в бъдещето