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

with t1 as
(select 5 id1, 1 id2, 1 id3, null id4, null id5 from dual)
     ,t2 as
(select null id1, 1 id2, 1 id3, 'X' id4, 'Y' id5 from dual
 union all
 select null id1, 1 id2, 2 id3, 'Z' id4, 'A' id5 from dual)

select t1.id1, t2.id2, t2.id3, t2.id4, t2.id5   from t1, t2
where 
t1.id2 = t2.id2
and t1.id3 != t2.id3

   	ID1	ID2	ID3	ID4	ID5
1 5 1 2 Z A

именно, получить из второй таблицы данные, где равны id2 в обеих, но нет строк во второй таблице по id3 ? просто вариант с неравенством не совсем нравится.
7 апр 10, 17:32    [8594279]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных  [new]
comphead
Member

Откуда: Киев
Сообщений: 3390
Guest331122,

тогда через подзапрос.
7 апр 10, 17:36    [8594312]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Guest331122
просто вариант с неравенством не совсем нравится.
А можно тестовые данные (и желаемый результат) более репрезентативные привести?
На которых "вариант с неравенством" неправильно работает
7 апр 10, 17:38    [8594321]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных  [new]
Data Type
Guest
Паганель,

я не говорю, что он неправильно работает, просто хотелось бы без такого условия.
7 апр 10, 17:46    [8594368]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Хотелось бы...
Ну Вы же технический специалист, скажите же чем именно это условие не устраивает
Индекс какой-то не подхватывается или еще что...
7 апр 10, 17:50    [8594386]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных  [new]
comphead
Member

Откуда: Киев
Сообщений: 3390
Data Type,

подзапрос

select t1.id1, 
       t2.id2, 
       t2.id3, 
       t2.id4, 
       t2.id5   
from t1, 
     t2
where  t1.id2 = t2.id2
and    not exists (select 1 from t1 where t2.id3 = t1.id3)
но это еще раз дергать таблицу. он подошел бы в случае если вам не надо было тянуть данные со второй таблицы.
7 апр 10, 17:52    [8594398]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить