Autor Zpráva
xy125
Profil
Potřeboval bych poradit, potřebuju vybrat z databáze články spolu s počtem komentářů a s počtem obrázků u článku
Pokud chci jen počet komentářů, vše funguje, ale když přidám druhý LEFT JOIN tak se mi počet obrázků násobí s počtem komentářů, Nevíte někdo jak správně tento dotaz sestavit?

Vzor:
SELECT clanek.text, COUNT(diskuze.id) AS diskuze, COUNT(obrazky.id) AS obrazky
FROM clanek
LEFT JOIN diskuze ON clanek.id=diskuze.clanek
LEFT JOIN obrazky ON clanek.id=obrazky.clanek
GROUP BY clanek.id
pmg
Profil
Možná by pomohl vnořený dotaz.


SELECT text, (
SELECT COUNT(*) FROM diskuze WHERE id = clanek.id
) AS diskuze, (
SELECT COUNT(*) FROM obrazky WHERE id = clanek.id
) AS obrazky
FROM clanek;
xy125
Profil
to jo, ale zvládne to i jiná verze MYSQL než 5?, Opravdu to nejde spojením tabulek?
Kajman_
Profil *
ale zvládne to i jiná verze MYSQL než 5?

Ano, poddotazy jsou v mysql od verze 4.1.

Opravdu to nejde spojením tabulek?

Třeba

SELECT clanek.text, COUNT(distinct diskuze.id) AS diskuze, COUNT(distinct obrazky.id) AS obrazky
FROM clanek
LEFT JOIN diskuze ON clanek.id=diskuze.clanek
LEFT JOIN obrazky ON clanek.id=obrazky.clanek
GROUP BY clanek.id
xy125
Profil
To je ono, funguje,
o DISTINCT jsem slyšel, ale moc jsem nechápal jeho funkci, no nic, jdu to nastudovat. Díky
Toto téma je uzamčeno. Odpověď nelze zaslat.

0