Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL - Wybierz z COUNT zwracającym NULL wiersz

Myślę, że chcesz left join zamiast inner join ponieważ chcesz zwrócić liczbę 0 zamiast brakującego wiersza, gdy nie ma pasującego c rekord dla danego b rekord.

Powinieneś także dołączyć group by podczas korzystania z funkcji agregującej, takiej jak 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. mysql TIME_WAIT; problem ze zbyt wieloma połączeniami

  2. SQL :Używanie tabeli docelowej w instrukcji UPDATE w zagnieżdżonej klauzuli FROM

  3. Zadanie dla mysqld.service nie powiodło się w Centos 7

  4. WYBIERZ każdego pracownika, który ma wynagrodzenie wyższe niż ŚREDNIA jego działu

  5. Jak zrobić stronicowanie, gdy UNION jest używany w MySQL?