sql >> Database >  >> RDS >> Mysql

return count 0 met mysql group by

Een GROUP BY heeft rijen nodig om mee te werken, dus als je geen rijen hebt voor een bepaalde categorie, krijg je de telling niet. Beschouw de where-clausule als een beperking van de bronrijen voordat ze worden gegroepeerd. De waar-clausule biedt geen lijst met categorieën om op te groeperen.

Wat u zou kunnen doen, is een query schrijven om de categorieën (voorsteden) te selecteren en vervolgens de telling in een subquery doen. (Ik weet niet zeker hoe de ondersteuning van MySQL hiervoor is)

Iets als:

SELECT 
  s.suburb_id,
  (select count(*) from suburb_data d where d.suburb_id = s.suburb_id) as total
FROM
  suburb_table s
WHERE
  s.suburb_id in (1,2,3,4)

(MSSQL, excuses)



  1. Databasegebruikersbeheer:rollen beheren voor MariaDB

  2. AnySQL Maestro verbinden met Salesforce.com

  3. Hoe voorbereide instructies te gebruiken in query's met een IN-clausule in PHP

  4. Jenkins gebruiken met Kubernetes AWS, deel 2