sql >> Databasteknik >  >> RDS >> Mysql

MySQL - Välj med COUNT som returnerar en NULL-rad

Jag tror att du vill ha en left join istället för en inner join eftersom du vill returnera ett antal 0 istället för en saknad rad när det inte finns någon matchande c rekord för en given b spela in.

Du bör också inkludera en group by när du använder en aggregerad funktion, såsom 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. SQL-fråga för att beräkna timmar som spenderats från den andra dagen och hamnade på nästa dag

  2. Zend_Db ordning efter fält Värde

  3. Anslutning kan inte castas till oracle.jdbc.OracleConnection

  4. Hur man får alla tabeller med eller utan primärnyckelbegränsning i SQL Server Database - SQL Server / TSQL Tutorial 59