Mam następujące zapytanie SQL
SELECT f.ID, f.itemType,
SUM(CASE WHEN o.ID THEN 1 ELSE 0 END) AS opened,
SUM(CASE WHEN d.ID THEN 1 ELSE 0 END) AS down
FROM tabela1 AS f
LEFT JOIN tabela2 AS o ON o.itemID = f.ID
LEFT JOIN tabela3 AS d ON d.itemID = f.ID
WHERE f.itemType = 'letterIn'
Wyjściowe założenie jest takie, żeby pobrać ID i itemType elementu znajdującego się w tabela1 oraz liczbę odwołań do tego elementu z tabela2 i tabela3.
W przypadku gdy liczba wierszy w tabela2 lub/i tabela3 wynosi 0 wszystko działa prawidłowo i zwraca poprawne wyniki np. $row['opened'] = 3 i $row['down'] = 0. Natomiast w przypadku gdy w obu tabelach występuje odniesienie do głównego elementu np. (3. odwołania w 'tabela2' oraz 2 odwołania w 'tabela3') wtedy w wyniku pojawiają się przemnożone wartości przemnożone przez siebie $row['opened'] = 6 i $row['down'] = 6.
Gdzie tkwi błąd?