Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Строгое соответствие в EXISTS  [new]
Syhoi
Guest
Есть 2 таблицы одна t2 содержит 2 записи
другая t много записей. Надо связать таблицы так чтобы выдавались данные из табл t чтобы поле m имело значения из таблицы t2, но не любое, а именно строго несколько значений, в данном примере и rr и dd

select *
  from (
        select 11 tcode
             , 'rr' m
          from dual
        union all
        select 11 tcode
             , 'dd' m
          from dual 
        union all
        select 12 tcode
             , 'dd' m
          from dual
       ) t 
 where exists (
                select *
                  from (
                        select 'rr' m
                          from dual
                        union all
                        select 'dd' m
                          from dual
                       ) t1  
                 where t1.m = t.m                
              )         

select *
  from (
        select 'rr' m
          from dual
        union all
        select 'dd' m
          from dual
       ) t1


tcode m
11 rr
12 dd
11 dd

в итоге, надо получить

tcode m
11 rr
11 dd

т.к. 12 содержит только dd, а rr не содержит.
22 сен 14, 16:48    [16605984]     Ответить | Цитировать Сообщить модератору
 Re: Строгое соответствие в EXISTS  [new]
varlamovvp
Member

Откуда: Moscow
Сообщений: 298
Syhoi,

where 2=(select count(8) from ...)
22 сен 14, 16:55    [16606033]     Ответить | Цитировать Сообщить модератору
 Re: Строгое соответствие в EXISTS  [new]
Syhoi
Guest
varlamovvp,
а если в таблице t1 в будущем будет 3 записи, то менять запрос???
Не выход ((
22 сен 14, 17:02    [16606078]     Ответить | Цитировать Сообщить модератору
 Re: Строгое соответствие в EXISTS  [new]
Добрый Э - Эх
Guest
Syhoi,

Читать про реляционное деление.
22 сен 14, 17:23    [16606217]     Ответить | Цитировать Сообщить модератору
 Re: Строгое соответствие в EXISTS  [new]
MonteCarlos
Member

Откуда:
Сообщений: 547
t.m внешний ключ от t1.m ? т.е в таблице t значения m вообще могут отличаться от t1.m ?
22 сен 14, 17:50    [16606343]     Ответить | Цитировать Сообщить модератору
 Re: Строгое соответствие в EXISTS  [new]
Syhoi
Guest
MonteCarlos,
не могут отличаться. t1 - поле m ключ, t - поле m Foreign Key к таблице t1
22 сен 14, 17:56    [16606370]     Ответить | Цитировать Сообщить модератору
 Re: Строгое соответствие в EXISTS  [new]
MonteCarlos
Member

Откуда:
Сообщений: 547
select *
from (select t.*, count(distinct t.m) over (partition by t.tcode) cnt
      from t) 
where cnt = (select count(*) from t1) 
22 сен 14, 18:05    [16606421]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить