Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Złożone zapytanie SELECT
Forum PHP.pl > Forum > Bazy danych
aros
Cześć!

Mam problem i nie umiem go rozwiązać, a chciałbym, jeśli to możliwe, zapiąć wszystko w jedno zapytanie.

Moje zapytanie w chwili obecnej wygląda tak:

$sql = "SELECT * FROM ranking, userki WHERE ranking.status=0 AND userki.userid = ranking.rankid ORDER BY punkty DESC, bilans DESC LIMIT $s,100;";
Efektem tego zapytania jest wynik:

Lp Player S Pld W D L GS GC GD Pt
1 palune8 0 0 0 0 0 0 0 0 1600
2 nazimilan 0 0 0 0 0 0 0 0 1600
(...)
19 quickie1 - 0 0 0 0 0 0 0 1600
20 Omartje1993 4L 4 0 0 4 1 12 -11 1498
21 bahae 4L 15 2 3 10 12 29 -17 1417

W tabeli z której pobieram dane jest pole o nazwie mecze (w tabelce wyzej nazywa sie to Pld, punkty z zapytania to w tabelce Pt).

Marzy mi się modyfikacja zapytania, która spowoduje, że wszystkie rekordy, w których Pld = 0 będą wyświetlane na samym dole, po rekordach, które Pld mają większe od 0, wówczas tabelka wyglądałaby tak:

Lp Player S Pld W D L GS GC GD Pt
1 Omartje1993 4L 4 0 0 4 1 12 -11 1498
2 bahae 4L 15 2 3 10 12 29 -17 1417
3 palune8 0 0 0 0 0 0 0 0 1600
4 nazimilan 0 0 0 0 0 0 0 0 1600
(...)

Jakieś pomysły?
AW
blooregard
Do ORDER BY dodać jeszcze ' Pld DESC ' ?
piotrooo89
może zwykły
  1. ORDER BY Pld DESC, punkty DESC, bilans DESC
aros
Znalazłem rozwiązanie sam. Może komuś się przyda.

To co proponowaliście nie przejdzie. Ja nie chce uzyskać sortowania wg liczby meczów. Ja chcę zachować sortowanie wg liczby punktów, przy czym zależy mi, żeby na końcu byli Ci co mają 1600 pkt (taki jest poziom startu rankingu), ale nie rozegrali jeszcze ani jednego spotkania.

Idealnie rozwiązuje mój problem poniższe zapytanie:

$sql = "SELECT * FROM ranking,userki WHERE ranking.status=0 AND userki.userid = ranking.rankid ORDER BY CASE WHEN mecze > 0 THEN 0 ELSE 1 END, punkty DESC, bilans DESC LIMIT $s,100;";

Chyba tłumaczyć nie trzeba. Takie wirtualne kryterium sortowania rozwiązało sprawę.
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.