[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Какой вид запроса уместнее
Страницы: 1, 2
S.Chushkin
Ладно, раз уж такая непонятка, разжую маленько свой ответ.

> Нужны все поля из table1

Все поля table1 можно получить в любом запросе.

> и определенные поля из table2

Второй запрос отпадает, т.к. там подзапрос может вернуть только одно поле, а требуется "поля".
Вариант множества подзапросов не рассматривается, т.к. ТС его не привёл в списке.

>
Далее, inner join (3-й) возвращает только записи, которые есть в обоих таблицах. В принципе можно предположить, что ТС нужны именно такие записи, но это частный случай и в задаче не оговорено. А если учесть в списке второй запрос, который устраивает ТС (ибо написано "Могу сделать 3мя способами"), то 3-й однозначно отпадает.
Поэтому нужно использовать запрос с left join (1-й), который вернёт все записи из table1 и любой набор полей.

Ещё что-то не понятно по поводу "почему"?

По скорости...
В общем случае, JOIN выполняется быстрее, чем подзапрос. Но не всегда. В редких случаях подзапрос может выполняться быстрее за счёт внутренней оптимизации и буферизации.
Обычно я рекомендую использовать классический JOIN (LEFT/INNER по необходимости). И только потом, если скорость запроса не устраивает, играться с разными вариантами подзапросов. (где-то уже обсуждали скоростя - поищи, или на этом форуме или на php.ru)

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
AllesKlar
Благодарствую.

_____________
[продано копирайтерам]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.