2013-05-22 2 views
2

У меня есть две таблицы: TAB1 и TAB2.SQL Присоединиться к Oracle

TAB1 поля: itemid (p) и описание
TAB2 поля: itemid (F) и parentitems.

TAB2 является подэлементом TAB1, поэтому я хочу получить все элементы из TAB1 и родительских элементов, эквивалентное описание элемента из TAB1.

Пожалуйста, найдите ниже запрос.

Select 
    t1.itemid , 
    t1.DESC, 
    t2.parentitems, 
    t2.DESC 
from TAB1 t1 left join TAB2 t2 on t1.itemid = t2.parentitems 
where 
    some conditions... 

Позвольте мне привести некоторые примеры значений ..

TAB1:

item Desc 
A1  aa 
A2  bb 
A3  cc 
A4  dd 

TAB2:

item parentitems 
A1  A1 
A1  A2 
A4  A2 
A4  A2 

Как получить родительские элементы эквивалентны DESc из TAB1?

+0

Каков ожидаемый выход? –

ответ

0

Я не уверен, что именно вы хотите, но это звучит как что-то вроде этого:

Select 
    t1.item item, 
    t1.Desc desc1, 
    t2.parentitems pitem 
    ,t1_2.Desc desc2 
from TAB1 t1 left join TAB2 t2 on t1.item = t2.item 
left join TAB1 t1_2 on t2.parentitems = t1_2.item 

Here is a sqlfiddle example

1

Вы должны использовать рекурсивные методы. для получения дополнительной информации см. here

+0

Отличная ссылка. Спасибо. – 0xCAFEBABE

+0

вы добро пожаловать! – Abadis

0

Ниже приводится базовый запрос MS SQL Server.

ВЫБРАТЬ TAB2.parentitems, TAB2.itemid, TAB1.description ОТ TAB1 RIGHT OUTER JOIN TAB2 ON TAB1.itemid = TAB2.parentitems


УДАЧИ ... :)

Chamath Jeevan

Смежные вопросы