Einzelnen Beitrag anzeigen
  #1  
Alt 20.07.2011, 11:31:01
Tito_de_Vito Tito_de_Vito ist offline
Anfänger
 
Registriert seit: Jul 2011
Ort: Aachen
Alter: 55
Beiträge: 1
Join über 4 Tabellen mit Summen

Tach auch,
ich habe da ein Problem mit einer für mich etwas komplizierten Mysql-Abfrage.
Es sollen Daten aus mehreren Tabellen zusammen getragen werden. Mit den Joins habe ich sowieso meine Probleme und das hier sprengt ein wenig meine Vorstellungskraft.

Ich möchte Daten aus T1 auslesen, dazu die Daten von T2 packen und aus T3/T4 die Anzahl der Einträge wissen, die zu T1 gehören und das ganze noch sortiert ausgeben. In den Tabellen T2/T3/T4 gibt es jeweils ein Feld t1_id für die Verknüpfung.
Ich hab das mal so gemacht:


SELECT t1.id, t1.wert, ...., t2.wert, ... ,
COUNT(t3.id) AS anz_t3werte,
COUNT(t4.id) AS anz_t4werte
FROM table1 AS t1
LEFT JOIN table2 AS t2 ON t2.t1_id = t1.id
LEFT JOIN table3 AS t3 ON t3.t1_id = t1.id
LEFT JOIN table4 AS t4 ON t4.t1_id = t1.id
WHERE t1.irgendwas = irgendwas
GROUP BY t1.id
ORDER BY t1.wert1, t1.wert2


Das funktioniert leider nicht so richtig. Der Wert von anz_t3werte wird nur dann richtig ausgegeben wenn keine vorhanden sind. Gibt es Einträge in T3 so gibt anz_t3werte das gleiche aus wie anz_t4werte.
Woran liegt das? Oder besser: wie bekomme ich die richtigen Werte für anz_t3werte?
(Ist das jetzt zu theoretisch? Ich könnte auch die verwendete Abfrage schicken)
Vielen Dank schon mal für eure Hilfe.
Mit Zitat antworten