Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Sortowanie użytkowników wg danych z dwóch tabel
robertzet
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 12.09.2013

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


Witam, mam następujacy problem.
Mam dwie tabele - uzytkownicy (w której przechowywane jest id, nazwa oraz kontrolka czy użytkownik może dostawać pochwały i nagany) oraz wyniki (w której przechowywane są id użytkownika oraz kontrolki - czy użytkownik otrzymał pochwałę czy naganę). Każda informacja o każdej pochwale lub naganie znajduje się w osobnym rekordzie.

tabela uzytkownicy
user_id, nazwa, uwzgledniaj
1, user1, 1
2, user2, 0
3, user3, 1
4, user4, 1

tabela wyniki
user_id, pochwala, nagana
1, 1, 0
1, 0, 1
1, 1, 0
4, 1, 0
3, 0, 1
4, 0, 1

Na podstawie tych dwóch tabel chciałbym otrzymać coś takiego:
user1: 2
user4: 0
user3: -1

Czyli zliczyć różnicę pochwał i nagan każdego użytkownika (który może pochwały i nagany otrzymywać) i posortować użytkowników wg tych danych malejąco.
Niestety nie wiem jak to zrobić.
Proszę o pomoc.

Pozdrawiam,
Robert Zetakowski
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mmmmmmm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


LEFT jest akurat tu niepotrzebny.
Da się to wykonać jednym zapytaniem. Np. takim:
  1. SELECT u.nazwa, Sum(w.pochwala-w.nagana) razem FROM uzytkownicy u JOIN wyniki w ON u.user_id=w.user_id GROUP BY 1 ORDER BY 2 DESC

EDIT: 2 DESC
Zwykły JOIN pokaże tylko użytkowników, którzy dostali pochwałę lub naganę.

Ten post edytował mmmmmmm 12.09.2013, 10:26:32
Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(mmmmmmm @ 12.09.2013, 11:24:37 ) *
LEFT jest akurat tu niepotrzebny.

Racja, nie zwróciłem uwagi, że na wyjściu ~robertzet pomija user2, który nie ma żadnej pochwały/nagany.

PS: Mogłeś zostawić przyjemność złożenia zapytania autorowi, a nie podawać gotowe rozwiązanie na tacy.
PS2: Skoro mają być tylko użytkownicy z pochwałami/naganami to chyba wydajniej byłoby pobierać dane z wyniki i joinować użytkowników.
Powód edycji: [phpion]:
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: 7.10.2025 - 00:10