Hallo,
Ich hoffe, dass es hier auch ein paar Leute mit Datenbankkenntnissen gibt. Das gehört ja auch zum Programmieren dazu ;-)
Vorab:
Datenbank ist MYSQL und läuft auf XAMPP
Ich habe 2 Tabelle termine und termin_arten.
Ich möchte nun eine Auflistung aller termin_arten mit dazugehörigem Dauer aller Termine, die zu dieser Kategorie ghören Das ist eigentlich auch kein Problem:
Hier mal die Strukturen (die wichtigsten Sachen)
Tabelle termine
Felder: ID (int), dauer (int), startzeit (timestamp). termin_art
Tabelle: termin_arten
Felder: ID (int)
SELECT termin_arten.ID as ID, sum(termine.dauer) AS dauer
FROM termin_arten
LEFT JOIN termine ON termin_arten.ID=termine.termin_art
GROUP BY ID
Klappt auch wunderbar
Er zeigt mir alle Terminarten an und die Dauer. Wenn es keine Termine in der Kategorie gibt, zeigt er mir null an. Genauso habe ich mir das vorgestellt.
Jetzt mein Problem: Ich möchte eine WHERE Bedinung einbauen und zwar beispielsweise, dass alle Termine selektiert werden, die eine startzeit < 342346526 haben.
So jetzt fallen durch diese WHERE Bedinung Termine raus logischerweise. Aber jetzt zeigt er mir nicht mehr alle Kategorien an mit der Dauer null, wenn keine Termine vorhanden sind, sondern filtert die raus, wo die null stehen müsste.
Beispiel:
SELECT termin_arten.ID as ID, sum(termine.dauer) AS dauer
FROM termin_arten
LEFT JOIN termine ON termin_arten.ID=termine.termin_art
WHERE startzeit < 34235455
GROUP BY ID
Bei Left Join nimmt er aber doch auf jeden Fall alle Sätze der linken Tabelle oder bin ich auf dem Holzweg? Hat vielleicht jemand eine Idee?
Gruß
der_webi