Tabela KATEGORIJA
Code:
id naziv
------------
1 Prva
2 Druga
3 Treca
Tabela ELEMENT
Code:
kategorija_id id naziv pogodak
-----------------------------------
1 1 aa 2
1 2 bb 41
1 3 cc 61
1 4 dd 121
1 14 nn 1
1 15 oo 1
2 5 ee 1
2 6 ff 42
2 7 gg 421
2 8 hh 1
2 16 pp 57451
2 17 rr 741
3 9 ii 6531
3 10 jj 1
3 11 kk 631
3 12 ll 1
3 13 mm 7341
Upit koji će vratiti prva tri elementa sa najviše pogodaka za svaku kategoriju:
Code:
SELECT k.naziv, e.naziv, e.pogodak
FROM kategorija AS k INNER JOIN element AS e ON k.id = e.kategorija_id
WHERE (((3)>(select count(*)
from element e2
where e2.pogodak > e.pogodak
and e2.kategorija_id=e.kategorija_id)))
ORDER BY k.id, e.pogodak DESC
Rezultat upita:
Code:
k.naziv e.naziv pogodak
-------------------------
Prva dd 121
Prva cc 61
Prva bb 41
Druga pp 57451
Druga rr 741
Druga gg 421
Treca mm 7341
Treca ii 6531
Treca kk 631
Napravljeno u na brzaka u MS Accessu - verujem da je isto ili slično u MySQL-u. Fajl u prilogu...
Nisam ni znao da znam dok nisam prob'o!