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

MySQL - Изберете с COUNT, връщайки NULL ред

Мисля, че искате left join вместо inner join тъй като искате да върнете брой от 0 вместо липсващ ред, когато няма съответстващ c запис за даден b запис.

Също така трябва да включите group by когато използвате агрегатна функция, като count .

SELECT
    b.b_id,
    COUNT(DISTINCT c.c_id) AS count
FROM 
    b 
    LEFT JOIN c 
        ON b.b_id=c.b_id  
        AND c.active='yes' 
WHERE b.featured='no'
GROUP BY b.b_id


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ProgrammingError:SQLite обекти, създадени в нишка, могат да се използват само в същата нишка

  2. mysql - ГРЕШКА 1064 (42000) при използване на ключови думи като име на колона

  3. как да се свържете с база данни на друг сървър

  4. Как трябва да съхранявам GUID в MySQL таблици?

  5. mysqlfailover:Няма модул с име mysql.utilities.common.tools