Текущее время: Ср, июл 23 2025, 23:02

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Разница между JOIN и EXISTS в SELECT
СообщениеДобавлено: Ср, фев 08 2012, 12:44 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, ноя 07 2011, 11:46
Сообщения: 83
Здравствуйте!
Помогите, пожалуйста, разобраться: впервые столкнулась с EXISTS в SELECT. Чем отличается SELECT, если скажем, прописать так:
1)SELECT * INTO TABLE name_tab
FROM scarr
WHERE EXISTS ( select *
FROM spfli
WHERE carrid = scarr~carrid ).
2) SELECT * INTO TABLE name_tab
FROM scarr
INNER JOIN spfli scarr~carrid = spfli~carrid.

Когда нужно использовать EXISTS, а когда JOIN?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Разница между JOIN и EXISTS в SELECT
СообщениеДобавлено: Ср, фев 08 2012, 13:26 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
http://www.firststeps.ru/sql/r.php?11

В вашем примере только второй вариант. Вариант с EXISTS для такого запроса - бред чистой воды.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Разница между JOIN и EXISTS в SELECT
СообщениеДобавлено: Чт, фев 09 2012, 22:18 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 18 2008, 10:40
Сообщения: 342
Откуда: Пермь
Пол: Мужской
Лучше по возможности использовать join. Но в некоторых случаях удобнее exists, например, если нужно выбрать все поля из одной таблицы ( SELECT * ), а в другой есть поля с таким же названием.
Вот цитата из хелпа
Цитата:
If multiple database tables are specified after FROM, you cannot prevent multiple columns from getting the same name when you specify *

Если 2-я таблица выбирается не по полному ключу, с join может получиться задвоение строк. Чтобы этого избежать иногда бывает удобно воспользоваться exists.
Еще поля таблицы, присоединяемой через left join, нельзя использовать в условии where, у exists такого ограничения нет, т.е. в where подзапроса можно использовать поля присоединенной left join-ом таблицы к основному запросу


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB