[ junuzaga @ 03.03.2007. 09:25 ] @
Zdravo,

Dakle, tabela je:

Code:
ID          | Tekst          | Posiljaoc              
1           | Ovo je neka    | 09200                 
2           | Kako ste       | 09333                 
3           | poruka!        | 09200                 
4           | Nebo je plavo  | 09646
5           | Neka recenica  | 06333
6           | dame i gosp?   | 09333


ID - auto inkrement.
Tekst - varchar
Posiljaoc - varchar

Trebam napisati query koji ce da vrati slijedeci rezultat:

Code:
ID          | Tekst          | Posiljaoc              
1           | Ovo je neka    | 09200                 
3           | poruka!        | 09200                 
2           | Kako ste       | 09333                 
6           | dame i gosp?   | 09333
4           | Nebo je plavo  | 09646
5           | Neka recenica  | 06333


Znaci, ORDER BY ID ASC je apsolutno neophodan. Ne znam kako da u tom rezultatu "poredam" jos rezultate po posiljaocu, znaci ako u tom rezultatu imaju dvije poruke (Tekst) od istog posiljaoca da dodju jedna iza druge.

Hvala unaprijed.
[ Dejan Topalovic @ 03.03.2007. 09:56 ] @
Code:
SELECT 
...
ORDER BY posiljaoc, id;
[ junuzaga @ 03.03.2007. 10:11 ] @
Nazalost, nece moci.

U tom slucaju, pri vrhu rezultata dobicu poruke koje bi trebao dobiti poslije oni sa manjim ID-om. Znaci, prvo ID pa onda nekako da u tom rezultatu dobijem ih i po tome sortiram ili bolje reci grupisem, ako me razumijes...
[ chachka @ 05.03.2007. 06:51 ] @
Ako su ti vrednosti u koloni ID jedinstvene nema smisla vrsiti grupisanje po toj koloni. Meni nisi jasan. Dejanovo resenje ti je dalo upravo ono sto si trazio u svom primeru. Daj primer u kojem ti Dejanovo resenje ne odgovara.
[ srki @ 15.03.2007. 14:41 ] @
Nije Dejanovo resenje dobro jer se te grupe nece pojavljivati po hronoloskoj vrednosti (kada se gleda prvi rezultat iz svake grupe), konkretno vratice grupu 06333 na prvom mestu a ne na poslednjem. Ovo je zanimljivo pitanje, ne znam MySql ali resenje u oracle je lako jer postoji analiticka funkcija FIRST_VALUE()
[ chachka @ 15.03.2007. 19:14 ] @
E sad m je napokon jasno sta treba :)

Saljem dva upita koja rade isto. Nadam se da barem jedan radi na MySQL-u.

Prvi nacin
Code:

SELECT p.id, p.tekst, p.posiljaoc
  FROM poruke AS p
       INNER JOIN
       (SELECT posiljaoc, MIN(id) AS min_id
          FROM poruke
         GROUP BY posiljaoc
       ) AS pp
       ON p.posiljaoc = pp.posiljaoc
 ORDER BY pp.min_id, p.id

Drugi nacin
Code:

SELECT p.id, p.tekst, p.posiljaoc, MIN(pp.id)
  FROM poruke AS p
       INNER JOIN
       poruke AS pp
       ON p.posiljaoc = pp.posiljaoc
 GROUP BY p.id, p.tekst, p.posiljaoc
 ORDER BY 4, 1
[ junuzaga @ 16.03.2007. 13:51 ] @
Oj pa ovo radi!! Moram malo istestirati, cujemo se ako ne bude radilo :)

Puno hvala!