Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / (+) <> left join / 8 сообщений из 8, страница 1 из 1
14.09.2016, 17:30:26
    #39309212
Sonia
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(+) <> left join
Добрый день всем!

Простите за банальный вопрос.
Есть код:
Код: plsql
1.
2.
3.
4.
5.
SELECT t.*, e.*, o."PerformDateTime"  
 FROM GRK_DOC_DIRECTUM_OUT t
 INNER JOIN LDERC e ON e.ID = t.ID 
 LEFT JOIN LDDOCOPERATION o ON t.ID = o."DocID" AND o."OperTypeID" = 301 AND o."PerformDateTime" IS NOT NULL   
 WHERE  t."OutDate" IS NOT NULL AND t."OutStateName" = 'В очереди на отправку'



Почему он не равен

Код: plsql
1.
2.
3.
4.
 SELECT t.*, e.*, o."PerformDateTime"  
 FROM GRK_DOC_DIRECTUM_OUT t, LDERC e, LDDOCOPERATION o 
 WHERE e.ID = t.ID AND t.ID = o."DocID"(+) AND o."OperTypeID" = 301 AND o."PerformDateTime" IS NOT NULL 
 AND t."OutDate" IS NOT NULL AND t."OutStateName" = 'В очереди на отправку'


????

Спасибо!!!
...
Рейтинг: 0 / 0
14.09.2016, 17:38:48
    #39309219
UDW
UDW
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(+) <> left join
Sonia,

Первое, что бросается в глаза, это условия в поле связки. Внимательнее надо. После ON указываются ключевые связки. Остальные ограничения перенеси в раздел WHERE.
...
Рейтинг: 0 / 0
14.09.2016, 17:52:44
    #39309228
or12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(+) <> left join
UDW,

Это почему?
...
Рейтинг: 0 / 0
14.09.2016, 18:05:08
    #39309239
UDW
UDW
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(+) <> left join
or12,

Подумай.
...
Рейтинг: 0 / 0
14.09.2016, 18:07:32
    #39309242
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(+) <> left join
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
 SELECT t.*, e.*, o."PerformDateTime"  
 FROM GRK_DOC_DIRECTUM_OUT t, LDERC e, LDDOCOPERATION o 
WHERE e.ID = t.ID 
  AND t.ID = o."DocID"(+)
  AND o."OperTypeID" (+) = 301 
  AND o."PerformDateTime" (+) IS NOT NULL 
  AND t."OutDate" IS NOT NULL 
  AND t."OutStateName" = 'В очереди на отправку'
...
Рейтинг: 0 / 0
14.09.2016, 19:05:23
    #39309283
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(+) <> left join
SoniaПочему он не равенRTFM Outer Joins (FAQ) : "If A and B are joined by multiple join conditions, then you must use the (+) operator in all of these conditions."
...
Рейтинг: 0 / 0
15.09.2016, 09:00:24
    #39309435
Sonia
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(+) <> left join
Поняла, всем спасибо!!!
...
Рейтинг: 0 / 0
15.09.2016, 14:55:50
    #39309717
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(+) <> left join
SoniaПочему он не равен
Потому, что это разные запросы.
В первом ты просишь не строго присоединить те строки из o, которые соответствуют условиям.
Во втором ты просишь присоединить o так, чтоб результат соответствовал условиям.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / (+) <> left join / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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