Seite 1 von 1

SQL: Verknüpfte Tabellen, auch Nullwerte zählen

Verfasst: Fr, 30.10.2009 11:04
von Steffan
Hallo zusammen,

ich bastele gerade an einer kleinen Buch-DB. Darin gibt es u.a. eine Tabelle mit Büchern und eine mit Verlagen.
Tabelle 'Verlage':
- ID
- Verlag
Tabelle 'Buch':
- ID
- Titel
...
- VerlagID
...

Um herauszufinden wieviele Bücher ich den einzelnen Verlagen zugeordnet sind, habe ich folgende Abfrage geschrieben:

Code: Alles auswählen

SELECT Verlage.ID, Verlage.Verlag, COUNT( Buch.VerlagID ) 
FROM Buch, Verlage 
WHERE Buch.VerlagID = Verlage.ID 
GROUP BY Verlage.ID, Verlage.Verlag 
ORDER BY Verlage.Verlag ASC
Das klappt soweit auch ganz gut. Allerdings kann es ja auch sein, dass ein Verlag definiert wurde, der bisher keinem Buch zu geordnet wurde. Dieser taucht in meinem Abfrageergebnis nicht auf. Wie muss die Abfrage aussehen, damit ich auch diese Verlage mit dem Zählergebnis 0 zurückbekomme.

Vielen Dank im Voraus für Eure Antworten,
Steffan

Re: SQL: Verknüpfte Tabellen, auch Nullwerte zählen

Verfasst: Fr, 30.10.2009 11:21
von pmoegenb
Hallo Steffan,

siehe viewtopic.php?f=8&t=29260. Das Problem war ähnlich gelagert.

Re: SQL: Verknüpfte Tabellen, auch Nullwerte zählen

Verfasst: Fr, 30.10.2009 12:09
von Steffan
Vielen Dank, das hat wunderbar geklappt.
Hier zur Vollständigkeit die geänderte Abfrage

Code: Alles auswählen

SELECT v.ID, v.Verlag, COUNT(b.VerlagID) AS `Anzahl zugeordneter Bücher` 
FROM Verlage AS v
LEFT OUTER JOIN  Buch AS b  
ON b.VerlagID = v.ID
GROUP BY v.ID, v.Verlag 
ORDER BY v.Verlag ASC
Beste Grüße,
Steffan