Как читать SQL-запрос?

Пример запроса:

SELECT * FROM `table1` 

RIGHT JOIN `table2` 

ON `table2`.`uid` = `table1`.`uid`  

LEFT JOIN `table3` 

ON `table1`.`uid`  = `table3`.`uid`  

WHERE `table2`.`acc_id` = 11

AND `table1`.`data` IN (...)


Это: дай все записи из таблицы t2 но только те, что есть из указанного IN списка в t1 а ещё из t2 выбери только те, что есть в t3 у которых uid совпадают с t1?
Т.е. основная таблица в этом запросе это t2? И из неё выбираются данные в зависимости от тех, которые есть "слева" и "справа" в других таблицах?

Каков порядок выполнения данного и подобных запросов? Как понять как его оптимизировать, вероятно вначале имеет смысл выбирать данные из таблиц в которых меньше всего данных?
  • Вопрос задан
  • 937 просмотров
Пригласить эксперта
Ответы на вопрос 1
0X12eb
@0X12eb
Вам нужно почитать про План выполнения в mysql.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы