Mám 3 tabulky
clanky(ID-primary_key,a další již nepodstatné)
komentare(ID-primary_key,Clanek,dalsi..)
hodnoceni(ID-primary..,Clanek,Hodnoceni)
A potřeboval bych SQL dotaz, aby mi to vybralo Clanky a spocitalo, kolik je komentářů a průměrné hodnocení...
SQL dotaz mi pak vyšel tak:
SELECT clanky.ID,clanky.Nadpis,clanky.Popis,clanky.Datum,AVG(hodnoceni.Hodnoceni) as `Znamka`,Count(komentare.ID) as `Komentaru`
FROM
`clanky` LEFT JOIN `hodnoceni`,`komentare`
on clanky.ID = hodnoceni.Clanek or clanky.ID = komentare.Clanek
WHERE clanky.Key LIKE '%$id%'
Group by clanky.ID,komentare.Clanek,hodnoceni.Calnek
Order by `Datum` DESC
Limit 5;
Fuj, to je dotaz...
Count komentářů mi funguje, ale hodnocení mi vypíše pro všude stejné
a přiřazovat to nemůžu, protože by mi to pak nevypisovalo clanky bez komentare nebo hodnocení...
Sem si ještě našel, že by to šlo perfektně vnořeným slectem, ale ten asi wz nepodporuje, protože má MySQL 4.0.15 a to pry funguje až od 4.1
Už to asi mám.. Kdyby to někdo někdy potřeboval tak:
SELECT * FROM
`1tabulka` right JOIN `hlavní_tabulka` on podmínka_spojeni
left JOIN `3tabulka` on podmínka_spojeni
a to, že může mít 1 a 3 tabulka ve vztahu k hlavní_tabulkou nulovou hodnotu
Tak sem si tu sám se sebou pělně pokecal :D