Topic: COUNT() iš skirtingų lentelių
na situacija tokia:
iš vienos lentelės traukiu duomenis, kelis laukelius, bet žinau, kad bus pažymėta tik viena eilutė, ir skaičiuoju su šiuo įrašu susijusius duomenis kituose lentelėse. ur bėda ta, kad nesvarbu kiek kitose lentelėse įrašų, visur COUNT() atsakymas būna lygus pirmos lentelės rezultatams. ar čia aš nemoku kažko, ar čia taip yra ir nieko nepakeisi.
viską darau taip:
SELECT
t1.id AS id,
t1.name AS name,
t1.description AS description,
AVG(t3.result) AS vote,
COUNT(t3.result) AS counter,
COUNT(t2.id) AS comments,
COUNT(t4.id) AS materials
FROM cms_games AS t1
LEFT JOIN cms_games_comments AS t2
ON t2.game_id=t1.id
LEFT JOIN cms_games_votes AS t3
ON t3.game_id=t1.id
LEFT JOIN cms_games_materials AS t4
ON t4.game_id=t1.id
WHERE t1.id=$id
GROUP BY t1.id
t.y. jei 'counter' rezultatas yra 5, tai tiek pat būna ir 'comments', ir 'materials'...
$id gaunu iš išorės