Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 FULL OUTER JOIN в Oracle  [new]
Кустанай
Member

Откуда: Челябинск
Сообщений: 81
Простой вопросик:есть аналог для FULL OUTER JOIN в Oracle? Насколько мне известно join'ы в oracle не используются
25 июл 07, 15:30    [4434967]     Ответить | Цитировать Сообщить модератору
 Re: FULL OUTER JOIN в Oracle  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54398
Кустанай
Простой вопросик:есть аналог для FULL OUTER JOIN в Oracle? Насколько мне известно join'ы в oracle не используются
Ты, наверное, не поверишь - прямо так и пиши - FULL OUTER JOIN (с 9-ой версии).
25 июл 07, 15:32    [4434976]     Ответить | Цитировать Сообщить модератору
 Re: FULL OUTER JOIN в Oracle  [new]
Кустанай
Member

Откуда: Челябинск
Сообщений: 81
andreymx
Кустанай
Простой вопросик:есть аналог для FULL OUTER JOIN в Oracle? Насколько мне известно join'ы в oracle не используются
Ты, наверное, не поверишь - прямо так и пиши - FULL OUTER JOIN (с 9-ой версии).


Верю, только версия пока 8
25 июл 07, 15:34    [4434990]     Ответить | Цитировать Сообщить модератору
 Re: FULL OUTER JOIN в Oracle  [new]
Кустанай
Member

Откуда: Челябинск
Сообщений: 81
Так никто и не подскажет, что делать, если версия 8?
25 июл 07, 16:20    [4435316]     Ответить | Цитировать Сообщить модератору
 Re: FULL OUTER JOIN в Oracle  [new]
alf123
Guest
Кустанай
Так никто и не подскажет, что делать, если версия 8?


(+)
Union
(+)
25 июл 07, 16:22    [4435326]     Ответить | Цитировать Сообщить модератору
 Re: FULL OUTER JOIN в Oracle  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54398
Кустанай
Так никто и не подскажет, что делать, если версия 8?
а здесь на форуме не искал? А то лично мне - лень.
А методов было несколько - но как перешел на 9-ку, всё забыл.
alf123
(+)
Union
(+)
По-моему, не совсем так просто в общем случае (дистинкт не всегда нужен)
25 июл 07, 16:24    [4435346]     Ответить | Цитировать Сообщить модератору
 Re: FULL OUTER JOIN в Oracle  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Кустанай
Так никто и не подскажет, что делать, если версия 8?
тынц
25 июл 07, 16:24    [4435348]     Ответить | Цитировать Сообщить модератору
 Re: FULL OUTER JOIN в Oracle  [new]
Elic
Member

Откуда:
Сообщений: 29991
Кустанай
версия пока 8
STFF эмуляция full outer join-а на додевятошных версиях Oracle-а
25 июл 07, 16:40    [4435458]     Ответить | Цитировать Сообщить модератору
 Re: FULL OUTER JOIN в Oracle  [new]
Кустанай
Member

Откуда: Челябинск
Сообщений: 81
А если три таблица соединять full join'ом - то получается нечто страшное, громадная конструкция. как тут быть?
27 июл 07, 06:31    [4443008]     Ответить | Цитировать Сообщить модератору
 Re: FULL OUTER JOIN в Oracle  [new]
stax..
Guest
Кустанай
А если три таблица соединять full join'ом - то получается нечто страшное, громадная конструкция. как тут быть?

громадить, другого выхода нет
мой любимый

FAQ-SQL-Существует ли в Oracle FULL JOIN?

.......
stax
27 июл 07, 09:40    [4443383]     Ответить | Цитировать Сообщить модератору
 Re: FULL OUTER JOIN в Oracle  [new]
Babon
Member

Откуда: Санкт-Петербург
Сообщений: 430
Все же все хорошо в Oracle c ANSI SQL

Oracle EE 10.2.0.3

SQL> drop table t;

Table dropped.

SQL>
SQL> create table t (t_id number, t_num number);

Table created.

SQL>
SQL> with ta as
  2  (select t_id, t_num from t where t_num<1000)
  3  select t_num1, t_num2, t_num3 from
  4  (select t_id t_id1, t_num t_num1 from ta where t_num=1) t1
  5  full outer join
  6  (select t_id t_id2, t_num t_num2 from ta where t_num=2) t2
  7  on t1.t_id1 = t2.t_id2
  8  full outer join
  9  (select t_id t_id3, t_num t_num3 from ta where t_num=3) t3
 10  on t1.t_id1 = t3.t_id3;
(select t_id, t_num from t where t_num<1000)
                          *
ERROR at line 2:
ORA-00942: table or view does not exist

В 9.2.0.8 и вроде в 10.1.0.5 все работает.
27 июл 07, 13:04    [4445263]     Ответить | Цитировать Сообщить модератору
 Re: FULL OUTER JOIN в Oracle  [new]
Babon
Member

Откуда: Санкт-Петербург
Сообщений: 430
Babon
Все же все хорошо в Oracle c ANSI SQL


Хотел сказать "не все хорошо"...
27 июл 07, 13:06    [4445279]     Ответить | Цитировать Сообщить модератору
 Re: FULL OUTER JOIN в Oracle  [new]
OraDen
Member

Откуда:
Сообщений: 828
Babon
Babon
Все же все хорошо в Oracle c ANSI SQL


Хотел сказать "не все хорошо"...
А просто
select t_id, t_num from t where t_num<1000
работает?
27 июл 07, 13:16    [4445370]     Ответить | Цитировать Сообщить модератору
 Re: FULL OUTER JOIN в Oracle  [new]
Babon
Member

Откуда: Санкт-Петербург
Сообщений: 430
Да, и так тоже работает

SQL> drop table t;

Table dropped.

SQL>
SQL> create table t (t_id number, t_num number);

Table created.

SQL>
SQL> with ta as
  2  (select t_id, t_num from t where t_num<1000)
  3  select t_num1, t_num2 from
  4  (select t_id t_id1, t_num t_num1 from ta where t_num=1) t1
  5  full outer join
  6  (select t_id t_id2, t_num t_num2 from ta where t_num=2) t2
  7  on t1.t_id1 = t2.t_id2;

no rows selected

SQL>
27 июл 07, 13:20    [4445406]     Ответить | Цитировать Сообщить модератору
 Re: FULL OUTER JOIN в Oracle  [new]
Babon
Member

Откуда: Санкт-Петербург
Сообщений: 430
Баг 5130732.

Причем саппорт ответил что обходным решением может быть LEFT OUTER JOIN
27 июл 07, 13:26    [4445456]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить