SQL: Problem bei query...
Manu
- datenbank
Hallo zusammen,
irgendwie stehe ich gerade auf dem Schlauch (obs am Wetter liegt oder ich zu schlecht geschlafen hab, kann ich nicht sagen), ich habe folgendes Problem:
Neben einer USer-Tabelle, in der die Benutzer mit Gruppenzugehörigkeit aufgeführt sind, habe ich noch eine Tabelle Gruppen. Die Gruppen möchte ich nun auflisten (komplett, inkl. Gruppen, in denen sich keine USer befinden) und mache eine Abfrage über die Table Gruppen und User:
SELECT g.id,g.name,count(u.*) FROM groups g, users u WHERE u.group_id=g.id group by g.id,g.name
Natürlich werden nur die Gruppen aufgelistet, in denen sich auch User befinden. Wie bekomme ich es nun hin, dass eine Gruppe, die gerade angelegt wurde (und dementsprechend leer ist) mit aufgelistet wird (mit count:0 latürnich)... wie gesagt..stehe gerade auf dem Schlauch...oO
Hello,
indem du von der impliziten auf die explizite JOIN-Syntax ausweichst und einen LEFT JOIN verwendest, vgl. die verlinkten Artikel zu Joins.
MfG
Rouven
Hallo!
Danke für den Hinweis, das werde ich direkt mal einsetzen!
Wie bekomme ich es nun hin, dass eine Gruppe, die gerade angelegt wurde (und dementsprechend leer ist) mit aufgelistet wird (mit count:0 latürnich)... wie gesagt..stehe gerade auf dem Schlauch...oO
http://aktuell.de.selfhtml.org/artikel/datenbanken/joins/#leftright_join
SELECT
id,
name,
count(users.group_id) AS anzahl
FROM groups
LEFT JOIN users ON groups.id = users.group_id
GROUP BY id
Siechfred
Danke auch Dir Siechfried, hatte es dann dank des Stichwortes left join herausgefunden...
Gruß,
Manu