Autor Zpráva
buvl897
Profil *
Ahojte,

mam tabulku s takymito udajmi: ID, ID_USER, ID_CLANOK, KOMENT, RATING(int).

A chcel by som jednym SQL dotazom, dostat pre kazdeho pouzivatela pre dany 1 clanok, najlepsie hodnoteny komentar.

Priklad
1 1 1 "komentar1" 20
1 2 1 "komentar4" 60
1 1 1 "komentar2" 40
1 1 1 "komentar3" 50
1 2 1 "komentar5" 20


dostanem:
1 2 1 "komentar4" 60
1 1 1 "komentar3" 50
(teda vypisem najlepsi komentar pre kazdeho pouzivatea pre dany 1 clanok).

Da sa to vobec 1 dotazom?

Dakujem velmi pekne.
Kajman
Profil
SELECT t1.*
FROM   tabulka t1
       JOIN (SELECT t2.ID_USER,
                    t2.ID_CLANOK,
                    Max(t2.RATING) RATING
             FROM   tabulka t2
             # WHERE t2.ID_CLANOK=1 # pripadne omezeni na jeden jediny clanek
             GROUP  BY t2.ID_USER,
                       t2.ID_CLANOK) t3
         ON t1.ID_USER = t2.ID_USER
            AND t1.ID_CLANOK = t2.ID_CLANOK
            AND t1.RATING = t3.RATING
         # GROUP BY t1.ID_USER, t2.ID_CLANOK # pripadne dalsi group by pro vynechani vice stejne hodnocenych komentaru

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