2011-09-14 3 views

Répondre

1

quelque chose comme ceci:

SELECT a.name, COUNT(DISTINCT b.city_id) 
FROM Cities a JOIN Members b 
ON b.city_id = a.id 
GROUP BY b.city_id 
+0

Fonctionne mais sans DISTINCT dans la fonction COUNT. –

+0

Doit être COUNT (DISTINCT b.id) – symcbean

+0

hey, Si j'ai une autre table nommée 'posts' et qu'elle a l'attribut 'city_id', puis-je obtenir le même résultat et ajouter combien de posts dans chaque ville? quelque chose comme ceci: CITY_NAME, MEMBERS_COUNT, posts_count Newyork, 15, 20 Los Angles, 12, 30 –

1
SELECT 
     c.name AS city_name, 
     COUNT(m.id) AS counter 
    FROM Members m 
    JOIN Cities c ON m.city_id = c.id 
+0

Ok, je viens de faire un _rollback_ :) – Marco

0
select 
    cities.name as city_name, 
    count(cities.id) as counter 
from 
    members inner join cities 
on 
    members.city_id = cities.city.id 
0

Essayez cette

SELECT c.name city_name, COUNT(m.id) counter 
FROM Cities c INNER JOIN Members m 
ON c.id = m.city_id 
GROUP BY c.name 
0

Essayez s Quelque chose comme ceci:

select city.name, count(member.id) 
from city 
inner join members 
on city.id = members.city_id 
group by city.name 

Espérons que cela aide.

+0

INNER JOIN n'affichera aucune ville avec zéro membre. Donc, si l'utilisateur a besoin d'afficher les villes qui ont zéro, ils devraient utiliser LEFT JOIN à la place. – EtherDragon