# [MySQL] SELECT und COUNT in 2 Tabellen



## prey2003 (14. Februar 2007)

Hallo zusammen,

ich habe ein Problem mit einer Abfrage. Ersteinmal Grundlegendes:
Ich habe folgende Tabellen:

```
[groups]
id
name
.... weitere Daten

[user]
id
name
groupid
.... weitere Stammdaten
```

Ich möchte nun mittels einer Abfrage die Werte der Tabelle groups ermitteln (also * bzw. ALL), sowie die Anzahl der User, die sich in dieser Gruppe befinden (also COUNT() ).
Meine derzeitige Lösung sieht folgendermaßen aus:

SELECT *, groups.id AS r_id, COUNT(user.id) AS anz_usr 
FROM groups, user 
WHERE user.groupid= groups.id 
GROUP BY groups.name";

Das Problem ist, dass mir diese Abfrage nur die Daten der Tabelle liefert, wenn sich ein User in der Gruppe befindet. Ich gehe mal stark davon aus, dass es mit der WHERE-Klausel zusammenhängt. Wichtig ist mir allerdings, dass für leere Gruppen als User-Anzahl 0 ausgegeben wird.

Ich hoffe ich habe euch mein Problem verstädnlich geschildert.

Mfg Robert


----------



## ZeroEnna (14. Februar 2007)

Hi

Bei Auszählungen sind JOINS (http://www.w3schools.com/sql/sql_join.asp) immer zu empfehlen. Versuch es doch mal wie folgt:


```
SELECT g.*, COUNT(u.id) AS `anz_user`
FROM `groups` AS g
LEFT JOIN `user` AS u ON u.`groupid` = g.`id`
GROUP BY g.`id`
```

Gruss
ZeroEnna


----------

