kkuubbaa88
14.11.2010, 20:54:32
witam
mam przykladowa tabele, w ktorej znajduja sie pola id,kategoria:
id | kategoria
1 | 1
2 | 2
3 | 1
4 | 1
5 | 2
6 | 1
7 | 2
8 | 2
9 | 1
10 | 3
11 | 3
12 | 4
13 | 1
chcialbym pobrac za pomoca jednego zapytania po 3 rekordy z kazdej kategorii. czy jest to mozliwe ? jezeli tak to w jaki sposob ?
Kshyhoo
14.11.2010, 21:04:42
(SELECT * FROM tabela WHERE kategoria='1' ORDER BY id DESC LIMIT 3)
UNION
(SELECT * FROM tabela WHERE kategoria='2' ORDER BY id DESC LIMIT 3)
UNION
(SELECT * FROM tabela WHERE kategoria='3' ORDER BY id DESC LIMIT 3)
kkuubbaa88
14.11.2010, 21:34:12
czy ma to jakiś sens czy próbie wyciągniecia 3 rekordów z każdej z 9 kategorii ? bo tak naprawdę to i tak wychodzi 9 zapytań tylko z podłączonymi wynikami. nie ma na to innego sposobu ?
Kshyhoo
14.11.2010, 21:39:58
To jest jedno zapytanie, po to UNION.