Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Złożone zapytanie SELECT
aros
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.03.2008

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
aros
post
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.03.2008

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


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ę.

Ten post edytował aros 11.01.2010, 00:33:10
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: 13.10.2025 - 13:34