Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / 11g, есть ли подвохи: употребление c- "(+)" и без- / 19 сообщений из 19, страница 1 из 1
09.12.2016, 14:53
    #39363505
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
Подскажите, есть ли здесь подвохи (в смысле употребления aaa c "(+)" и без) ?
Код: plsql
1.
2.
3.
Select ...
   and aaa.a_id = A.id(+)   --при этом  FK {aaa.a_id} полностью входит в PK {A.id}
   and subp.subp_id = aaa.prod_id(+)   -- а здесь м.б. симметрическая разность



А то если у A.id(+) убрать (+), сужается выборка.
...
Рейтинг: 0 / 0
09.12.2016, 14:58
    #39363509
K790
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
exp98,

Joins
...
Рейтинг: 0 / 0
09.12.2016, 15:32
    #39363536
Opus Magnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
exp98,

Мне казалось, что с Вашим количеством постов вопрос должен быть глубоким, но не могу найти смысла, кроме как непонимание того, зачем (+) нужен...
Или вопрос в производительности по сравнению с другими вариантами такого запроса?
...
Рейтинг: 0 / 0
09.12.2016, 15:37
    #39363549
Ozornitca
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
Opus Magnum,
left outer и rigrh outer джойны
...
Рейтинг: 0 / 0
09.12.2016, 15:38
    #39363551
Ozornitca
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
rigth'
...
Рейтинг: 0 / 0
09.12.2016, 15:45
    #39363563
Opus Magnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
Ozornitca,

Вы мне?
...
Рейтинг: 0 / 0
09.12.2016, 16:53
    #39363663
Ozornitca
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
Opus Magnum,

я вам
...
Рейтинг: 0 / 0
09.12.2016, 16:53
    #39363665
Ozornitca
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
по вашему вопросу про + -

ну чтобы уточнить)
...
Рейтинг: 0 / 0
09.12.2016, 16:54
    #39363668
Ozornitca
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
еще точнее, по вашему вопросу из старттопика,

ну вы спрашивали про +, типо сужается выборка все такое
...
Рейтинг: 0 / 0
09.12.2016, 16:55
    #39363670
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
Opus Magnum, все ааа , грубо говоря, содержатся в А .
если я не путаю, то
Код: plaintext
from ааа left outer A
аналогично
Код: plaintext
where ааа = A(+)

Если написать
Код: plaintext
ааа left outer A
или
Код: plaintext
aaa inner join A
кол-во строк не изменится, а уменя меняется. Или где я ошибаюсь?

Я и спросил, может ли влиять наличие одновременно одной таблицы и с (+), и без него
Код: plsql
1.
2.
3.
where  2=2
   and  ааа.aid = A.id     -- здесь ааа   без (+)   
   and  ... = aaa.prod_id(+)   --- а здесь ааа с (+)

Правда это далеко не весь запрос, но мне и здесь хватает глубины ...
...
Рейтинг: 0 / 0
09.12.2016, 16:56
    #39363672
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
Ozornitca, это я ТС
...
Рейтинг: 0 / 0
09.12.2016, 17:06
    #39363684
dbms_photoshop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
exp98,

Ты по ссылкам ходишь, что тебе дают?
If A and B are joined by multiple join conditions, then you must use the (+) operator in all of these conditions. If you do not, then Oracle Database will return only the rows resulting from a simple join, but without a warning or error to advise you that you do not have the results of an outer join.Это сложно для понимания или "чукча не читатель"?
...
Рейтинг: 0 / 0
09.12.2016, 17:13
    #39363691
Avotge
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
exp98при этом FK {aaa.a_id} полностью входит в PK {A.id}
exp98А то если у A.id(+) убрать (+), сужается выборка
Может все-таки не полностью входит? )
Можно просто проверить )
...
Рейтинг: 0 / 0
09.12.2016, 17:17
    #39363697
dbms_photoshop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
Avotge,

Ты тоже читай цитату выше и учитывай что соединение может быть более чем по одному предикату.
...
Рейтинг: 0 / 0
09.12.2016, 17:24
    #39363704
Avotge
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
dbms_photoshopТы тоже читай цитату выше и учитывай что соединение может быть более чем по одному предикату.
Не догоняю :(
Что значит может быть более чем по одному?
У ТС в примере вроде как один предикат соединения aaa и A:
Код: plsql
1.
and aaa.a_id = A.id(+) --при этом  FK {aaa.a_id} полностью входит в PK {A.id}


При этом A.id(+) больше записей возвращается, чем с просто A.id.
...
Рейтинг: 0 / 0
09.12.2016, 17:27
    #39363706
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
exp98Если написать
Код: plaintext
ааа left outer A
или
Код: plaintext
aaa inner join A
кол-во строк не изменится, а уменя меняется. Или где я ошибаюсь?



where aaa.a_id is not null
...
Рейтинг: 0 / 0
09.12.2016, 17:34
    #39363718
Avotge
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
envwhere aaa.a_id is not null
Верняк :)
...
Рейтинг: 0 / 0
09.12.2016, 18:35
    #39363775
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
envwhere aaa.a_id is not nullв этом , поверьте, нет нужды, т.к. ааа есть размноженная выборка из А.id =PK, not null, unic

Я тоже тогда не догнал и на всяк и спросил именно про одновременность, а не просто типа "что не так?".
Код: plaintext
If A and B are joined by multiple join conditions
Потому что я не амер и выражение
Код: plaintext
"A and B "
так и перевожу: А и Б, т.е. оба
Код: plaintext
"are  joined  by multiple join conditions"
А в этом запросе моё А имеет ровно одно вхождение в условия, но раз доктор сказал в морг, значит в морг.
...
Рейтинг: 0 / 0
09.12.2016, 18:47
    #39363786
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g, есть ли подвохи: употребление c- "(+)" и без-
Ха-ха, там следующее же примечание:
Код: plaintext
The (+) operator does not produce an outer join if you specify one table in the outer query and the other table in an inner query.
Как раз мой случай, фотошоп прав, спасибо.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / 11g, есть ли подвохи: употребление c- "(+)" и без- / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]