>> SELECT id_team, >> sum(IF(m.id_visitor = t.id_team,m.visitor_score, >> m.home_score)) AS But_pour, >> sum(IF(m.id_visitor != t.id_team,m.visitor_score, >> m.home_score)) AS But_contre >> FROM tab_teams t, tab_matchs m >> WHERE t.id_level =4 >> AND (m.id_visitor = t.id_team OR m.id_home = t.id_team) AND >> m.season = 2 >> GROUP BY id_team; >>
Try rewriting this SQL query into a UNION all statement, by removing the OR condition in the WHERE clause, like: SELECT <fields> FROM <tables> WHERE m.id_visitor=t.id_team AND m.season=2 UNION ALL SELECT <fields> FROM <tables> WHERE m.id_home=t.id_team AND m.season=2 At least from what I know of Oracle this can speed up the query by orders of magnitudes and it maybe does the trick with mySQL, too. UNION ALL is supported with mySQL >= 4.x. Best regards ... Ralph ... --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php