d.stp
17.02.2014, 13:55:49
Witam, mam 2 tabele: USERS i ZAROBKI. Próbuję zrobić ranking użytkowników, którzy najwięcej sprzedali produktów w sklepie.
W tabeli zarobki mam pola id|id_usera|kwota|data no i nie wiem jak zrobić ten ranking. Chyba coś z JOIN będzie, ale nie mam pojęcia... Może mnie ktoś nakierować?
Daimos
17.02.2014, 13:59:02
Pewnie:
http://dev.mysql.com/doc/refman/5.0/en/join.htmlZobacz sobie jak działa join, dla Twoich potrzeb może być np. inner join. Jeśli wiesz jak wyciągnąć te zarobki w dobrej kolejności, dodajesz tylko joina, w którym porównujesz pola z id usera.
SELECT * FROM zarobki
JOIN users ON idwTabeliUsera = idwTabeliZarobki
Nie zapomnij o aliasach, jeśli nazwy kolumn się powtarzają
Pyton_000
17.02.2014, 14:00:20
SELECT count(id) AS suma FROM zarobki JOIN users ON(zarobki.user_id = users.id) GROUP BY zarobki.user_id ORDER BY suma DESC
To tak poglądowo.
d.stp
17.02.2014, 14:14:13
Dzięki Pyton, ale nie działa to chyba do końca tak jak chciałem. Chcę wyświetlić:
Login użytkownika | Zarobione pieniądze
A te zapytanie co mi podałeś sumuje ilość rekordów z tabeli zarobki każdego użytkownika.
Pogubiłem się :/
nospor
17.02.2014, 14:17:15
chciales miec liczbe sprzedazy, a nie sume kwot sprzedazy.... sie zdecyduj
No to jak chesz sume, to zamiast: count(id) AS suma
robisz: sum(kwota) AS suma
dosc logiczne.
d.stp
17.02.2014, 14:19:38
Tak, właśnie do tego doszedłem

Ale kompletnie nie wiem jak wyświetlić login użytkownika

Próbowałem nawet takich cyrków: $x['zarobki'][zarobki_id_usera']
nospor
17.02.2014, 14:22:11
....
No to dodaj go do select.....
select sum(kwota) AS suma, POLE_Z_LOGINEM_USERA from ...
d.stp
17.02.2014, 14:24:35

trzeba się podszkolić w zapytaniach.
Dzięki
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.