Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wybieranie rekordów z ich posortowaniem
Mion
post
Post #1





Grupa: Zarejestrowani
Postów: 105
Pomógł: 6
Dołączył: 7.03.2005

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


Jest tabela:
  1. SELECT Z.`id_komentarza`, Z.`id_zdjecia`, Z.`tresc_komentarza`, Z.`data` FROM ZdjeciaKomentarze Z;
Przechowująca komentarze zdjęć usera [ich jest dosyć dużo 259809]

Oraz druga przechowująca zdjecia usera
  1. SELECT U.`idz`, U.`id_usera`, U.`plik_zdjecia` FROM UserZdjecia U;


Problem jest taki by ułożyć zapytanie wybierające ostatnie 20 komentarzy jakie zostawili userzy do jego wszystkich zdjęć (nie jednego zdjęcia) danego usera np o U.`id_usera` = 422

Mam dzisiaj jakieś zaćmienie dlatego zwracam się o pomoc w tym zapytaniu.

Ten post edytował Mion 22.11.2010, 14:43:08
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Mion
post
Post #2





Grupa: Zarejestrowani
Postów: 105
Pomógł: 6
Dołączył: 7.03.2005

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


@ więc do zapytania JOIN posłać ją z ORDER BY id zdjęcia ustawionym na DESC.
Ale o ile dobrze się rozumiemy, albo i nie to co Piszesz tyczy sortowania ustawienia zdjęć, a ja potrzebuje komentarzy.

Jeszcze raz opisze o co chodzi. Userzy mają swoje zdjęcia tworząc w ten sposób galerię usera które są komentowane przez innych userów i kwestia jest taka by powiedzmy w panelu konta była zakładka z ostatnimi komentarzami [po jednym ostatnim dla danego zdjęcia] globalnie ustawione malejąco przykładowe rekordy:
[Z.tresc_komentarza] [ Z.data]
Jakiś komentarz do zdjęcia 21 | 2010-10-22 12:26
Jakiś komentarz do zdjęcia 3 | 2010-10-22 11:26
Jakiś komentarz do zdjęcia 6 | 2010-10-21 10:26
Jakiś komentarz do zdjęcia 1 | 2010-10-20 18:36

-------
Poradziłem sobie z tym problemem takim zapytaniem:
  1. SELECT U.`idz`,U.`id_usera`, U.`zdjecie_nazwa`, U.`idz`, KT.`id_zdjecia`, KT.`tresc_komentarza`, KT.`id_komentarza`, KT.`data`
  2. FROM UserZdjecia U
  3. LEFT JOIN
  4. (
  5. SELECT Z.`id_komentarza`, Z.`id_zdjecia`, Z.`tresc_komentarza`,Z.`data`
  6. FROM ZdjeciaKomentarze Z
  7. ORDER BY Z.`id_komentarza` DESC
  8. ) KT ON (KT.id_zdjecia = U.`idz`)
  9. WHERE U.`id_usera` = 422
  10. GROUP BY U.`idz`
  11. ORDER BY KT.id_komentarza DESC
  12. LIMIT 50;
Jego wykonanie nie zalicza się do demonów prędkości, bo wykonuje się 2 - 3 sekundy, ale wyniki cachuje w memcache wiec może być (IMG:style_emoticons/default/smile.gif)

Ten post edytował Mion 24.11.2010, 15:34:40
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: 4.10.2025 - 22:48