seth: MYSQL 5 Subselect verhindern

Beitrag lesen

gudn tach!

select id_spiel,

(select q1.odd as q1 from quoten_info q1 where s.id_spiel_xml_odd=q1.id_odd_xml and q1.id_type=1 and q1.odd_name='1' order by q1.odd DESC LIMIT 1) as q1,
(select q0.odd as q0 from quoten_info q0 where s.id_spiel_xml_odd=q0.id_odd_xml and q0.id_type=1 and q0.odd_name='X' order by q0.odd DESC LIMIT 1) as q0,
(select q2.odd as q2 from quoten_info q2 where s.id_spiel_xml_odd=q2.id_odd_xml and q2.id_type=1 and q2.odd_name='2' order by q2.odd DESC LIMIT 1) as q2
from spiel s;


>   
> Dieses soll mir zu jedem Spiel, hier mit id\_spiel bezeichnet, die jeweils höchste Heimquote (q1), Unentschiedenquote (q0) und Auswärtsquote (q2) liefern.  
  
du brauchst die tabelle `id\_spiel` gar nicht miteinzubeziehen, da du von ihr keine informationen extrahierst, die nicht schon in der anderen tabelle `quoten\_info` drinstehen (naemlich die id).  
  
insofern kannst du wahrscheinlich einfach drei einfachere selects auf `quoten\_info` anwenden und dabei jeweils die [MAX](http://dev.mysql.com/doc/refman/5.1/en/group-by-functions.html#function_max)-funktion sowie die [GROUP BY](http://dev.mysql.com/doc/refman/5.1/en/select.html#id798340)-funktionalitaet von sql verwenden.  
  
prost  
seth