Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP i MySQL] Czy da się połączyć te dwa zapytania w jedno?
Forum PHP.pl > Forum > PHP
miedzna
Nie wiem, jak i czy w ogóle da się połączyć te dwa zapytania w jedno?
Chcę osiagnąć cel: wyciągnąć dane gościa, który ma najwięcej punktów. Jeżeli sa tacy, co mają identyczną liczbę punktów, chcę wyciągnąc z bazy tego, co zgłosił punkt jako ostatni.

Wykonuje najpierw zapytanie do tabeli, która trzyma ID usera, liczbę zdobytych przez niego punktów, oraz datę ostatniego zgłoszenia się w celu wyciagnięcia największej liczby punktów:

  1. <?php
  2. $max = mysql_fetch_array(mysql_query("SELECT MAX(punkty) FROM punktacja"));
  3. ?>



a następnie wykonuję zapytanie, w celu wyciagnięcia z bazy tego, co ma najwięcej punktów. Jak widać w warunku WHERE zastosowałem sprawdzanie, czy ten user ma rzeczywiście największa liczbę, ale korzystając z wyniku poprzedniego zapytania:

  1. <?php
  2. $sortowanie = "SELECT du.nazwisko, du.imie, p.punkty, p.ostatniPunkt FROM dane_uczestnika 
    du, punktacja p WHERE p.punkty = '"
    .$max[0]."' AND p.dane_uczestnika_id = du.id ORDER BY p.ostatniPunkt DESC LIMIT 0,1";
  3. ?>


Nie podoba mi się to, że wykonuję 2 zapytania, da się to jakoś złożyć w jedno?

Dzięki
nexis
  1. SELECT u.nazwisko, u.imie FROM punktacja AS p LEFT JOIN dane_uczestnika AS u ON (p.dane_uczestnika_id = u.id) ORDER BY p.punkty DESC, p.ostatniPunkt DESC LIMIT 1
miedzna
Otóż to, dzięki za szybkość i za odpowiedź smile.gif

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