(+)=
От: AC1D  
Дата: 29.05.09 09:21
Оценка:
Привет всем. Глупый вопрос конечно, но что значит инструкция (+)=
встретил что-то типа, в инете не ищется,в книгах не встречал. подскажите

select * from securities s, issuers i where i.issuer_id(+)= s.issuer_id

db oracle
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: (+)=
От: KRA Украина  
Дата: 29.05.09 09:27
Оценка: 2 (1)
Здравствуйте, AC1D, Вы писали:

ACD>Привет всем. Глупый вопрос конечно, но что значит инструкция (+)=

ACD>встретил что-то типа, в инете не ищется,в книгах не встречал. подскажите

ACD>select * from securities s, issuers i where i.issuer_id(+)= s.issuer_id


Старый синтаксис для out join-ов в оракле. В дамом случае left join.
Re: (+)=
От: lazymf Россия  
Дата: 29.05.09 09:42
Оценка: 2 (1)
Здравствуйте, AC1D, Вы писали:

ACD>select * from securities s, issuers i where i.issuer_id(+)= s.issuer_id


Аналог:
select * from securities s left outer join issuers i on i.issuer_id = s.issuer_id

причем:

Oracle recommends that you use the FROM clause OUTER JOIN syntax rather than the Oracle join operator.

... << RSDN@Home 1.2.0 alpha 4 rev. 1217>>
Re[2]: (+)=
От: KRA Украина  
Дата: 29.05.09 09:49
Оценка:
Здравствуйте, KRA, Вы писали:

KRA>Здравствуйте, AC1D, Вы писали:


ACD>>Привет всем. Глупый вопрос конечно, но что значит инструкция (+)=

ACD>>встретил что-то типа, в инете не ищется,в книгах не встречал. подскажите

ACD>>select * from securities s, issuers i where i.issuer_id(+)= s.issuer_id


KRA>Старый синтаксис для out join-ов в оракле. В дамом случае left join.

Ошибся, всё таки rigth join
Re[3]: (+)=
От: lazymf Россия  
Дата: 29.05.09 09:59
Оценка:
Здравствуйте, KRA, Вы писали:

KRA>>Старый синтаксис для out join-ов в оракле. В дамом случае left join.

KRA>Ошибся, всё таки rigth join

Я ту же ошибку допустил в своем ответе — не обратил внимание на то, что i и s в выражении from и выражении where идут в разных порядках
... << RSDN@Home 1.2.0 alpha 4 rev. 1217>>
Re[2]: (+)=
От: wildwind Россия  
Дата: 29.05.09 16:30
Оценка:
Здравствуйте, lazymf, Вы писали:

L>

L>Oracle recommends that you use the FROM clause OUTER JOIN syntax rather than the Oracle join operator.


В то же время некоторые другие источники рекомендуют делать это с осторожностью.
Re[3]: (+)=
От: Mr.Cat  
Дата: 29.05.09 18:55
Оценка: -1
Здравствуйте, wildwind, Вы писали:
W>В то же время некоторые другие источники рекомендуют делать это с осторожностью.

А в чем вообще цимес этого "нового синтаксиса"? По мне — так "старый" (там, где он применим) читабельнее — все эти "left join" — только синтаксический оверхед.
Re[4]: (+)=
От: MasterZiv СССР  
Дата: 29.05.09 19:10
Оценка: 5 (1) +1
Mr.Cat пишет:

> А в чем вообще цимес этого "нового синтаксиса"? По мне — так "старый"

> (там, где он применим) читабельнее — все эти "left join" — только
> синтаксический оверхед.

Ты глубоко неправ. Дело в том, что у нестандартного синтаксиса
(не "outer join", а проприетарных расширений) есть семантическая
неоднозначность при описании полей в условиях в WHERE : не
понятно, какие значения упоминаются там, ДО выполнения JOIN-а,
или ПОСЛЕ. А, как известно, они разные, поскольку меняются
в процессе выполнения OUTER JOIN. Поэтому некоторые операции
в принципе невозможны с использованием проприетарных внешних JOIN-ов.
Стандартный синтаксис join-ов как раз создан, чтобы
эти неоднозначности снять, он их лишён.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: (+)=
От: Mr.Cat  
Дата: 29.05.09 19:24
Оценка:
Здравствуйте, MasterZiv, Вы писали:
MZ>Поэтому некоторые операции
MZ>в принципе невозможны с использованием проприетарных внешних JOIN-ов.
Да, емнип в проприетарном синтаксисе нет аналога для, например, full outer join.
Впрочем, внешними джойнами я уж давно не пользовался. А inner join мне все равно больше нравится проприетарный (опять же как-то компактнее и читабельнее он).
Re[6]: (+)=
От: MasterZiv СССР  
Дата: 30.05.09 08:32
Оценка: 1 (1) +2
Mr.Cat пишет:

> Впрочем, внешними джойнами я уж давно не пользовался. А inner join мне

> все равно больше нравится проприетарный (опять же как-то компактнее и
> читабельнее он).

Тоже не прав. Читаемее -- стандартный.
Posted via RSDN NNTP Server 2.1 beta
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.