Когда я использую внутренние объединения и когда я использую подзапросы? - PullRequest
1 голос
/ 01 ноября 2009

В чем разница между внутренним соединением и подзапросом? и когда я должен использовать подзапрос? или внутреннее соединение? Недавно я был в ситуации, когда внутреннее соединение было слишком медленным, и подзапрос был решением. Из моего ограниченного понимания я думал, что они работают точно так же.

1 Ответ

1 голос
/ 06 ноября 2009

Не имеет значения, используете ли вы соединения или подзапросы. Вы можете превратить практически любой запрос с подзапросом в запрос с объединением. Я бы пошел с тем, что является более читабельным. Иногда объединения более читабельны. Для других запросов подзапросы более читабельны. У вас не должно быть большой разницы в производительности, если вы оптимизируете оба запроса.

Одно исключение, с которым я столкнулся, - это создание коррелированного подзапроса , где выполняемый подзапрос зависит от результатов внешнего запроса. Эти типы запросов могут быть полезными, но очень неэффективными. Вы можете использовать их, когда вам нужно вычислить данные для каждой строки в запросе. В этом случае вы не можете использовать соединения.

...