У меня следующий запрос:
SELECT
`pokemon_moves`.`pokemon_move_method_id`,
`pokemon_moves`.`level`,
`move`.`id`,
`move`.`name`
FROM
`pokemon_moves`
LEFT OUTER JOIN
`moves` `move` ON
`move`.`id` = `pokemon_moves`.`move_id`
WHERE
`pokemon_moves`.`pokemon_move_method_id` < '4' AND
`pokemon_moves`.`pokemon_id` = '2' AND
`pokemon_moves`.`version_group_id` = '6'
ORDER BY
CAST(`pokemon_moves`.`level` as INTEGER) ASC,
`move`.`name` ASC
Это довольно медленно, и я думаю, это потому, что таблица moves
запрашивается для каждой строки в таблице pokemon_moves, а не только для тех, которые соответствуют предложению WHERE. Что было бы лучшим вариантом, чтобы написать этот запрос?
Обратите внимание, что целые числа в этой (внешней) таблице хранятся в виде текста