Текущее время: Пт, июл 25 2025, 05:08

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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