0
私はこのように構成されているすべてのメジャーリーグの試合のテーブルを持っている:複雑なCOUNTを持つこのMySQLステーションをより効率的にすることはできますか?
**Game**
id (int)
home_team_id (int)
away_team_id (int)
home_score (int)
away_score (int)
date (date)
私はまた別のゲームに販売のチケットを持っている「チケット」という名前のテーブルがあります。
**Ticket**
id (int)
game_id (int)
price (float)
time_sold (datetime)
を私は」チケットが売られた時点で、各チケットのリストが家庭と離れたチームのレコードと一致するというMySQLクエリを実行するのが好きです。。私はこれを使用しています:
SELECT ticket.id, game.home_team_id AS Home, game.away_team_id AS Away,
(SELECT COUNT(game.id) FROM game WHERE game.date < DATE_SUB(ticket.time_sold, INTERVAL 1 DAY) AND (game.home_score > game.away_score AND game.home_team = Home OR game.away_score > game.home_score AND game.away_team = Away)) as home_team_wins
FROM ticket
JOIN game
ON game.id = ticket.game_id
このクエリは非常に遅いです。私はゲームテーブルのすべての列にインデックスを付けましたが、チケットテーブルの価格を除くすべての列にインデックスを作成しましたが、それはまだ辛いです。
誰も私がこれをスピードアップできる方法を提案できますか?