Ich habe ein Problem mit einem MySQL-Query, ihr könnt mir da sicher weiterhelfen
Folgende Situation ist gegeben:
Tabelle 1: Personendaten
id (primary key), name
Tabelle 2: Werte1 zu Person:
id(primary key), t1_id (foreign key zu t1), wert1
Tabelle 3: Werte2 zu Person:
id(primary key), t1_id (foreign key zu t1), wert2
Nun will ich ein Ergebnis haben, dass wie folgt aussieht:
t1.name, t2.wert1, t3.wert2
(t2.wert1 und t3.wert2 sollen jeweils die aufsummierten Werte der Datensätze sein, die zum entsprechenden Datensatz aus t1 gehören)
Problem dabei ist, dass in t2 und t3 jeweils null oder beliebig viele Datensätze zu t1 existieren.
Bisheriger Ansatz:
SELECT t1.name, SUM(t2.wert1) AS wert1, SUM(t3.wert2) AS wert2
FROM (t1 LEFT JOIN t2 ON t1.id = t2.t1_id) LEFT JOIN t3 ON t1.id = t3.t1_id
GROUP BY t1.id
Leider bekomme ich dabei als Ergebnis viel zu hohe Werte heraus, wenn sich in t2 und t3 Werte zum entsprechenden Datensatz aus t1 befinden (Produkt aus richtigem Wert und der Anzahl der Datensätze der entsprechend anderen Tabelle zum jeweiligen Datensatz in t1 (?)); wenn nur in t2 ODER t3 Werte zu t1 enthalten sind, stimmt das Ergebnis.
Bin für jede Hilfe dankbar, da ich gerade ziemlich verzweifle :confused: