Ich habe drei Tabellen wie:
ab, a und b
Tabelle a und b sollten mehrere Vorkommen für dieselbe tourid haben.
SELECT * FROM ab
tourid tourname
------ ------------
100 hundert
110 zehn
120 zwanzig
select * from a;
imageid tourid filesize
------- ------ ----------
1 100 10
2 100 20
SELECT * FROM b
uid tourid filesize
------ ------ ----------
5 100 5
SQL-Abfrage:
SELECT
a.tourid,
SUM(a.filesize) AS a_sum,
SUM(b.filesize) AS b_sum
FROM ab
LEFT JOIN a ON a.tourid=ab.tourid
LEFT JOIN b ON b.tourid=ab.tourid
WHERE ab.tourid=100
liefert das Ergebnis:
tourid a_sum b_sum
------ ------ --------
100 30 10
Aber das Ergebnis sollte sein:
tourid a_sum b_sum
------ ------ --------
100 30 5
Das Ergebnis der Spalte b_sum ist falsch