Всем привет!
Возможно вопрос глупый, но мне интересно, можно ли как то посмотреть как работает запрос, по этапам.
Т.е. обход таблиц, выполнение вложенных select, exists и т.д.
Есть вот такой запрос:
SELECT
`profiles`.*,
`edu_speciality_profile`.`edu_speciality_id` AS `pivot_edu_speciality_id`,
`edu_speciality_profile`.`profile_id` AS `pivot_profile_id`,
`edu_speciality_profile`.`id` AS `pivot_id`,
`edu_speciality_profile`.`max_year` AS `pivot_max_year`
FROM
`profiles`
INNER JOIN `edu_speciality_profile` ON `profiles`.`id` = `edu_speciality_profile`.`profile_id`
WHERE
`edu_speciality_profile`.`edu_speciality_id` IN(1) AND EXISTS(
SELECT
*
FROM
`edu_speciality_profile_year`
INNER JOIN `edu_speciality_profile` ON `edu_speciality_profile`.`id` = `edu_speciality_profile_year`.`edu_speciality_profile_id`
WHERE
`profiles`.`id` = `edu_speciality_profile`.`profile_id` AND `edu_speciality_profile`.`max_year` = `edu_speciality_profile_year`.`year` AND `edu_speciality_profile_year`.`distant` = 1
);
И у этого запроса WHERE EXISTS отрабатывает не так как задумано...
Если интересно что конкретно делает запрос могу описать, там все сложно))