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

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Steffan
****
Beiträge: 125
Registriert: Mi, 21.06.2006 10:07
Wohnort: Dresden

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

Beitrag 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
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

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

Beitrag von pmoegenb »

Hallo Steffan,

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

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Steffan
****
Beiträge: 125
Registriert: Mi, 21.06.2006 10:07
Wohnort: Dresden

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

Beitrag 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
Antworten