sql >> Database teknologi >  >> RDS >> Mysql

MySQL - Vælg med COUNT, der returnerer en NULL-række

Jeg tror, ​​du vil have en left join i stedet for en inner join da du vil returnere et antal på 0 i stedet for en manglende række, når der ikke er nogen matchende c optage for en given b optage.

Du bør også inkludere en group by når du bruger en aggregeret 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. Administrer brugeradvarsler

  2. RPAD() Funktion i PostgreSQL

  3. Hvordan gemmer man, håndterer ordrens samlede beløb i et ordrer, ordredetaljer skema?

  4. Skal jeg bruge en JOIN-funktion eller køre flere forespørgsler i en sløjfestruktur?