Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyciągnie danych na podstawie dwóch różnych tabel
proton
post
Post #1





Grupa: Zarejestrowani
Postów: 88
Pomógł: 4
Dołączył: 16.08.2006

Ostrzeżenie: (20%)
X----


Witam

Mam mały problem z wyciąganiem danych na podstawie dwóch innych tabel dokładnie chodzi mi o to że musze z tabeli 'uzytkownicy' wyciagnac userow na podstawie ilosci dodanych komentarzy i ocen gdzie komentarze i oceny są w osobnych tabelach. Zarówno w tabeli komentarzy i ocen jest jedno pole które określa kto napisał ten komentarz czy kto dodał ta ocenę. Udaje mi się wyciągać te dane ale tylko na podstawie jednej tabeli (może pokaże przykład):

  1. SELECT user_name, user_id, count(user_id) AS ilosc_komentarzy FROM komentarze INNER JOIN uzytkownicy ON komentarz_user=user_id GROUP BY user_name ORDER BY ilosc_komentarzy DESC LIMIT 0, 5


Teraz jak to przerobić aby wyciągnąć jeszcze ilość ocen i posortować wg. ilosc_komentarzy+ilosc_ocen
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
WiruSSS
post
Post #2





Grupa: Zarejestrowani
Postów: 83
Pomógł: 7
Dołączył: 3.02.2007

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


spróbuj tak:

  1. SELECT u.user_name username, u.user_id idusera, (COUNT(k.user_id)+COUNT(o.user_id)) punkty
  2. FROM uzytkownicy u
  3. LEFT JOIN komentarze k ON k.user_id=u.user_id
  4. LEFT JOIN oceny o ON o.user_id=u.user_id
  5. GROUP BY username
  6. ORDER BY punkty DESC LIMIT 5


[edit]

jesli natomiast chcesz sortować osobno wg ocen i komentarzy to by wyglądało chyba tak:

  1. SELECT u.user_name username, u.user_id idusera, COUNT(k.user_id) komentarzy, COUNT(o.user_id) ocen
  2. FROM uzytkownicy u
  3. LEFT JOIN komentarze k ON k.user_id=u.user_id
  4. LEFT JOIN oceny o ON o.user_id=u.user_id
  5. GROUP BY username
  6. ORDER BY komentarzy DESC, ocen DESC LIMIT 5


..dobrze by było żebyś podał strukturę tabel bo tak to nie wiem jakie nazwy kolumn dać w tych zapytaniach.

Ten post edytował WiruSSS 22.02.2009, 15:52:23
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: 14.10.2025 - 09:55