SELECT d.nazwa_druzyny, SUM(IF(m.druzyna1=d.id_druzyny AND m.gole_druzyny1>m.gole_druzyny2 OR m.druzyna2=d.id_druzyny AND m.gole_druzyny1<m.gole_druzyny2, 1, 0 ) ) AS zw, SUM(IF(m.druzyna1 = d.id_druzyny AND m.gole_druzyny1 < m.gole_druzyny2 OR m.druzyna2 = d.id_druzyny AND m.gole_druzyny1 > m.gole_druzyny2 , 1, 0 ) ) AS prz, SUM(IF(m.gole_druzyny1 = m.gole_druzyny2 , 1, 0 ) ) AS re, sum( IF( m.druzyna1 =d.id_druzyny, m.gole_druzyny1 , IF( m.druzyna2 =d.id_druzyny, m.gole_druzyny2 , 0 ) ) ) AS bramkistrzelone, sum( IF( m.druzyna1 =d.id_druzyny, m.gole_druzyny2 , IF( m.druzyna2 =d.id_druzyny, m.gole_druzyny1 , 0 ) ) ) AS bramkistracone, sum( IF( m.druzyna1 =d.id_druzyny AND m.gole_druzyny1 > m.gole_druzyny2 OR m.druzyna2 =d.id_druzyny AND m.gole_druzyny1 < m.gole_druzyny2 , 1, 0 ) )*3+sum( IF( m.gole_druzyny1 = m.gole_druzyny2 , 1, 0 ) ) AS punkty FROM druzyny AS d LEFT JOIN mecze AS m ON (m.druzyna1 = d.id_druzyny OR m.druzyna2 = d.id_druzyny) GROUP BY d.id_druzyny, d.nazwa_druzyna ORDER BY punkty DESC;
Da się taka tabele stworzyć w jednym zaptyaniu, czy trzeba bedzie pisac procedure?