Oracle поиск SQL - PullRequest
       1

Oracle поиск SQL

0 голосов
/ 08 октября 2018

У меня есть информация об одних данных в таблице.Я должен найти один данные в той же таблице, но в другой строке.

Пример:

t1

a b   c
----------
1 111 abc
2 222 abc
3 567 abc

t2

id d1 d2 d3
-----------
12 23 123 4,5
12 24 234 13,65
12 25 345 13,65
12 26 456 0
12 27 567 0
select t1.a, t1.b, t2.id 
from t1, t2 
where t1.b = t2.d2

Как получить 13,65 (я знаю, что d1 должно быть 25 (постоянным)) в одном выборе?

Спасибо за ответ.

Ответы [ 3 ]

0 голосов
/ 09 октября 2018

Я сделал это с:

select t1.a, t1.b, ta1.id, ta2.d3 from t1 right join t2 ta1 on t1.b = ta1.d2, t2 ta2 where t1.b = 567 and ta1.id = ta2.id and ta2.d1 = 25;

Спасибо всем.

0 голосов
/ 09 октября 2018

Попробуйте, с несколькими объединениями:

select t1.a, t1.b, t2.id, A.d3 
from t1

join t2 
on t1.b = t2.d2 --first join to get the t2.id linked with data from t1

  join (select t2.id, t2.d3
        from t2 
        where t2.d1 = 25
        and t2.id = (select distinct t2.id
                     from t2
                     left outer join t1
                     on t1.b = t2.d2)
        ) A --2nd join to get the data from t2 with d1=25 with the join on the id
  on A.id = t2.id

Результат:

A   B   ID   D3
3   567 12   13,65
0 голосов
/ 08 октября 2018

Я считаю, что вам нужно Внешнее соединение.Тр это

select t1.a, t1.b, t2.id 
from t1, t2 
 where t1.b = t2.d2(+)
 and t2.d1 = '25'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...