Autor Zpráva
svast
Profil
Zdravím, chci propojit dvě tabulky, zkoušel jsem i několik podobných řešení tady, ale výsledek je pořád jiný než potřebuji. V tabulce jsou články a v tabulce2 jsou k nim komentáře a hodnocení (CISLO=ID). Potřebuji seřadit články z tabulky sestupně jen podle počtu 5 bodových hodnocení, takže ne podle SUM, kdy by byl výsledek (2,1,3), ale chtěl bych něco s count(hodnoceni) WHERE hodnoceni=5, tedy výsledek (2,3,1).
Zkoušel jsem tohle:
SELECT tabulka.id, tabulka.nazev, tabulka2.cislo,tabulka2.hodnoceni
FROM tabulka
JOIN tabulka2
ON tabulka.id = tabulka2.cislo
WHERE tabulka2.hodnoceni=5
ORDER BY COUNT(tabulka2.hodnoceni)
DESC
LIMIT 10

Hlásí mi to chybu kvůli toho řazení, prostě nemůžu zjistit jak to přesně napsat. Díky
tabulka
ID | NAZEV
1  | prvni
2  | druhy
3  | treti

tabulka2
CISLO |  HODNOCENI
1     |  4
2     |  5 
3     |  2
1     |  3
2     |  5
2     |  4
3     |  5
1     |  4
Kajman_
Profil *
SELECT tabulka.id, tabulka.nazev, t.cislo, 5 hodnoceni
FROM   tabulka
JOIN   (select tabulka2.cislo, COUNT(tabulka2.hodnoceni) pocet
        from   tabulka2
        where  tabulka2.hodnoceni = 5
        group  by tabulka2.cislo) t
ON     tabulka.id = t.cislo
ORDER  BY t.pocet DESC
LIMIT 10
svast
Profil
aha, tak to bych přemýšlel ještě hodně dlouho, každopádně to funguje, dík. Chtěl jsem to trochu doladit, ale z tohoto jsem trochu mimo, mohl by jste mi ještě poradit jak přidat řazení podle tabulka.nazev v případě, že v tabulka2.hodnoceni jsou dvě stejné hodnoty? Tzn. pokud se vyskytne více řádků se stejným číslem seřadí se dál podle abecedy.
Kajman_
Profil *
ORDER  BY t.pocet DESC, tabulka.nazev
svast
Profil
:-) a já jsem zkoušel
ORDER  BY t.pocet, tabulka.nazev DESC
, až teď mi to došlo. Díky

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0