Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z konstrukcją zapytania
Manwe89
post
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 3
Dołączył: 28.10.2008
Skąd: Łuków

Ostrzeżenie: (0%)
-----


Witam. Mam tablicę w bazie i chcę z niej pobrać posortowane dane pod id malejąco więc daje:
  1. SELECT * FROM tablica ORDER BY id DESC

No a teraz dodatkow chcialbym zeby tak mi posortowalo, zeby kolo siebie znalazy sie te same adresy email (jednak glowny porzadek zachowany zostal po id malejaco). Zpaytanie:
  1. SELECT * FORM tablica ORDER BY email, id DESC

oraz
  1. SELECT * FROM tablica ORDER BY id DESC, email

nie przyniasa mi zadanego skutku, poniwaz pierwsze z nich posortuje mi wg emaili, i tylko powtarzajace sie rekoordy (w sensie z takim samym adresem email) posortuje mi po id malejaco. drugie natomiast posortuje mi po id malejaco a po emailach tylko te z tym samym id. Jednak takowych nie ma bo id jest kluczem.

Wie ktos, albo moglby rzucic zarys jak sie uporac z moim problemem??

Ten post edytował Manwe89 22.05.2009, 12:03:23
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Musialem poprawic
aders4... -> adres4 bo pewnie tak mialo byc


-- to ci pobierze emaile, kazdy raz, w kolejnosci od najnowszych
  1. SELECT DISTINCT email FROM pliki WHERE id = ( SELECT MAX( id ) FROM pliki p1 WHERE p1.email = pliki.email )
  2. ORDER BY id DESC

Przez to zlaczenie musisz zalozyc index na 'email'
ALTER TABLE `pliki` ADD INDEX ( `email` );

  1. -- to dolacza pliki do emaili (emaile sa juz posortowane)
  2. -- wiec pliki dolaczy wg emaila do kolejnych emaili
  3. SELECT DISTINCT pliki.email, p2.id FROM pliki JOIN pliki p2 ON p2.email = pliki.email
  4. WHERE pliki.id = ( SELECT MAX( id ) FROM pliki p1 WHERE p1.email = pliki.email )
  5. ORDER BY pliki.id DESC, p2.id DESC
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 22:58