przewiń do treści

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

Włodzimierz Gajda

Okładka książki „PHP. Praktyczne projekty”

Listing 20.1.
Zapytanie SQL wyznaczające informacje statystyczne o klubie, dla którego klub_id = 16

ROZDZIAŁ:20. Sortowanie tabel
TXT:listing-20-01.txt
SELECT
    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.klub_id = 16 AND
    (m.gospodarz = k.klub_id  OR m.gosc = k.klub_id)
©2010 Włodzimierz Gajda