przewiń do treści

PHP, MySQL i MVC. Tworzenie witryn WWW opartych na bazie danych

Włodzimierz Gajda

SELECT
    k.nazwa as nazwa,
    k.klub_id as klub_id,
    k.liga_id as liga_id,
    SUM(
        (@remis := IF (m.gol1 = m.gol2, 1, 0)) +
        (@zwyciestwo :=
            IF (
                (m.gol1 > m.gol2 AND m.gospodarz = k.klub_id) OR
                (m.gol1 < m.gol2 AND m.gosc = k.klub_id),
                1,
                0
            )
        ) * 3
    ) as punkty,
    SUM(
        IF (m.gospodarz = k.klub_id OR m.gosc = k.klub_id, 1, 0)
    ) as mecze,
    SUM(@zwyciestwo) as zwyciestwa,
    SUM(@remis) as remisy,
    SUM(
        IF (
            (m.gol1 < m.gol2 AND m.gospodarz = k.klub_id) OR
            (m.gol1 > m.gol2 AND m.gosc = k.klub_id),
            1,
            0
        )
    ) as przegrane,
    SUM(
        IF (m.gospodarz = k.klub_id, m.gol1, m.gol2)
    ) as bramkizdobyte,
    SUM(
        IF (m.gospodarz = k.klub_id, m.gol2, m.gol1)
    ) as bramkistracone
FROM
    klub as k,
    mecz as m
WHERE
    (k.liga_id = 123) AND
    (m.gospodarz = k.klub_id  OR m.gosc = k.klub_id)
GROUP BY
    k.klub_id
ORDER BY
    punkty DESC

Listing 20.9. Zapytanie SQL ustalające tabelę ligi 123 posortowaną malejąco względem liczby zdobytych punktów

Rozdział 20. Sortowanie tabel

listing-20-09.txt

Reklama

Szkolenia z Symfony 2.0