коррелированный запрос / подзапрос VS запрос на соединение - PullRequest
0 голосов
/ 20 апреля 2010

мы всегда можем преобразовать обычный подзапрос / коррелированный подзапрос в запрос типа соединения?

Ответы [ 2 ]

1 голос
/ 20 апреля 2010

Да, но это означает, что то, к чему вы ПРИСОЕДИНЯЕТЕСЬ, может появиться в наборе результатов. Подзапрос в предложении EXISTS или IN не будет иметь такого риска.

0 голосов
/ 20 апреля 2010

да и нет ...

  • Да, поскольку JOIN / EXISTS / IN обычно дают один и тот же план и часто совпадают

  • Нет, в том случае, если в таблице EXISTS> 1 строки для основной таблицы вам потребуется DISTINCT, чтобы избежать ошибок

Я бы придерживался запроса типа EXISTS, если это актуально и вам не нужны данные из таблицы EXISTS

...