В хорошей базе данных не должно быть разницы между двумя запросами. Помните, что SQL - это описательный язык, а не процедурный язык. То есть оператор SQL SELECT
описывает набор результатов, который должен быть возвращен. В нем не указаны шаги для его создания.
Ваши два запроса семантически эквивалентны, и оптимизатор SQL должен уметь это распознавать.
Конечно, оптимизаторы SQL не всеведущий. Итак, иногда то, как вы пишете запрос , влияет на план выполнения. Однако запросы, которые вы описываете, превращаются в планы выполнения, которые не имеют понятия «подзапрос», поэтому разумно, что они будут производить тот же план выполнения.
Примечание. Некоторые базы данных, такие как MySQL и MS Access - не имеют очень хороших оптимизаторов, и такие запросы действительно создают разные планы выполнения. Увы.