sentenello
Registered
Здравейте, имам една заявка която има нужда от преработка, защото в момента е много бавна.
С тази заявка вземам мачовете и в същото време бъркам в друга таблица където намирам преводите на двата отбора и техния приоритет и подрежда резултатите по този приоритет.
Като цяло мисля че проблема ми идва от това че правя втори селект и той бави, но не знам как да бръкна в другата таблица и да взема приоритетите на двата отбора за да ги наредя по тях.
проблема според мен е тук
Със втората заявка вземам отборите 1 по 1, във втората таблицата като там си имам поле с приоритет което сумирам и подреждам по него. Някакви идеи как да го премахна тоя код и да постигна същия резултат или как да го направя правилно, защото със сигурност моето не е от най-правилните.
С тази заявка вземам мачовете и в същото време бъркам в друга таблица където намирам преводите на двата отбора и техния приоритет и подрежда резултатите по този приоритет.
Код:
SELECT
CONCAT( m.FTgd, ' - ', m.FTgg ) AS ftresult,
m.hometeam AS domakina,
m.awayteam AS gosta,
e.countryBG as countrytoBG,
e.countryEN as countryflag,
e.leagueBG as ligatabg,
m.start_date,
(SELECT COALESCE(SUM( priority ), 60)
FROM `otbori`
WHERE teamEN = domakina
AND country != ''
AND teamBG != ''
AND `priority` IS NOT NULL
OR teamEN = gosta
AND country != ''
AND teamBG != ''
AND `priority` IS NOT NULL
) AS prioritet
FROM `event` e
LEFT JOIN `sport` s ON e.sportid = s.id
LEFT JOIN `match` m ON e.id = m.event_id
LEFT JOIN `bettype` b ON m.id = b.match_id
LEFT JOIN `choicetype` c ON b.id = c.bet_id
WHERE e.sportid = '1'
AND b.name = 'Match Result'
AND m.FTgd IS NOT NULL
AND m.FTgg IS NOT NULL
AND e.countryBG !=''
GROUP BY m.id
ORDER BY m.start_date DESC,`prioritet` ASC
LIMIT 10
Като цяло мисля че проблема ми идва от това че правя втори селект и той бави, но не знам как да бръкна в другата таблица и да взема приоритетите на двата отбора за да ги наредя по тях.
проблема според мен е тук
Код:
(SELECT COALESCE(SUM( priority ), 60)
FROM `otbori`
WHERE teamEN = domakina
AND country != ''
AND teamBG != ''
AND `priority` IS NOT NULL
OR teamEN = gosta
AND country != ''
AND teamBG != ''
AND `priority` IS NOT NULL
) AS prioritet
Със втората заявка вземам отборите 1 по 1, във втората таблицата като там си имам поле с приоритет което сумирам и подреждам по него. Някакви идеи как да го премахна тоя код и да постигна същия резултат или как да го направя правилно, защото със сигурност моето не е от най-правилните.