MySQL -> Complexe Select Anweisung
butter
- datenbank
Abend,
Ich habe ein Problem, welches aus 3 Tabllen und einer Select anwesung besteht.
Tabele1:
Abteilung
ID | Name
------------------------
1 | Ein Test
2 | Yahoola
3 | Servus
4 | Baum
Grund
ID | Name
------------------------
1 | Essen
2 | Drinken
3 | Fischen
Kontaktiert
ID | Time | AbteilungID | GrundID
---------------------------------------------------------
1 | 1111493949 | 1 | 1
2 | 1111494534 | 1 | 2
3 | 1111495663 | 1 | 2
4 | 1111497899 | 3 | 1
So und meine Ziel ist es folgende Ausgabe zu bekommen
GrundName | Anzahl (Wie oft die Abteilung [1] unter dem Grund kontaktiert worden ist
---------------------------------------------------------------
Essen | 1
Drinken | 2
Fischen | 0
Übergen wird nur die AbteilungsID, mit der möchte ich nun rausfinden wie oft die Abteilung für jeden grund Kontakterit worden ist, wobei '0' mal auch angezeigt werden soll
SELECT Grund.Name GrundName , count(Kontaktiert.ID) Anzahl
FROM Kontaktiert,
Grund
WHERE Kontaktiert.AbteilungID = 1
AND Kontaktiert.GrundID = Grund.ID
GROUP BY Reason.ID";
Bekomm ich aber nicht die Gründe raus für die es keine Werte gibt,
wie kannman das anders schreiben?
Hi,
FROM
Kontaktiert,
Grund
bitte lasse diese komischen Ticks weg, solange für sie keine Notwendigkeit besteht. Und wenn sie besteht, ändere das DB-Layout.
wie kannman das anders schreiben?
Beschäftige Dich mit Outer Joins.
Cheatah
yo,
wie bereits von Chetah erwähnt, hilft hier ein OUTER JOIN weiter. nur für den fall, falls du es noch nicht hinbekommen hast, hier mein vorschlag (nicht ausprobiert).
SELECT Grund.Name, COUNT (Kontaktiert.ID) AS Anzahl
FROM Grund LEFT JOIN Kontaktiert ON (Kontaktiert.GrundID = Grund.ID)
WHERE Kontaktiert.AbteilungID = 1
GROUP BY Grund.Name";
Ilja
Hi danke für dein Vorschlag,
Das funktioniert auch so weit, bis auf das die Grund Spalten welche nicht in der Tabelle Kontaktiert verknüpft sind nicht angezeigt werden.
yo,
Das funktioniert auch so weit, bis auf das die Grund Spalten welche nicht in der Tabelle Kontaktiert verknüpft sind nicht angezeigt werden.
ich sehe keinen grund, warum sie das nicht sollten. welches ergebnis bekommst du den mit der abfrage geliefert ?
Ilja