2017-02-14 4 views
0

Ich habe 2 Tische:Select-Anweisung Abrufen derselben Spalte zweimal

Tabelle 1 genannt category_desription, es enthält zwei Felder: category_name und category_id.

Tabelle 2 genannt Kategorie die category_id und parent_Category_id Felder enthält, die Fremdschlüssel von in der ersten Tabelle category_id.

I 4 Felder auswählen möchten, wobei das Ergebnis category_id und seinen Namen category_name und parent_category_id und seinen Namen als auch enthalten, welche category_name auch

ich konnte sein geschieht nicht finde heraus, wie es so weit geht, also wünsche ich mir, wenn mir jemand dabei hilft.

+1

hinzufügen einige Beispieltabellendaten und das erwartete Ergebnis zu finden - auch formatierten Text. Zeigen Sie uns auch Ihren aktuellen Anfrageversuch. – jarlh

Antwort

1

Ich hoffe, dass dies Ihr prblm

SELECT category_id, 
(Select category_name from table1 where category_id= table2.category_id) as category_name , 
parent_category_id, 
(Select category_name from table1 where category_id= table2.parent_category_id) 
as parent_category_name from table2 
0

Dies ist ein einfacher Name Konflikt Problem in SQL, die leicht unter Verwendung gelöst werden können alias

z.B.

Select t1.category_id, t1.category_name, t2.category_id, t2.category_name 
from table1 t1 join table2 t2 on <some condition..> 

können Sie auch verschiedene Namen der Ergebnisspalte

Select t1.category_id, t1.category_name as 'Parent Category Name', 
t2.category_id, t2.category_name as 'Category Name' 
from table1 t1 join table2 t2 on <some condition..> 

Ich hoffe, es löst Ihr Problem geben.

+0

downvote weil category_name kein zweites Tabellenfeld ist – Darshak

+0

@DarshakGajjar das ist nur um OP das Konzept von 'Alias' zu erklären. Eine genaue Lösung zu liefern, war nie eine Absicht. – madcap

+0

: - Wenn Sie das OP-Konzept erklären, können Sie die Frage einfach als Vorschlag kommentieren. – Darshak

0
with category_desc as 
(select 1 as category_id, 'Category 1' as category_name 
    from dual 
    union all 
    select 2 as category_id, 'Category 2' as category_name from dual), 
category as 
(select 1 as category_id, 2 as parent_category_id from dual) 
select c.category_id, 
     c_d.category_name, 
     c.parent_category_id, 
     pc_d.category_name parent_category_name 
    from category c 
    join category_desc c_d 
    on c_d.category_id = c.category_id 
    join category_desc pc_d 
    on pc_d.category_id = c.parent_category_id 

Verwendung category_desc mit verschiedenen Alias ​​lösen parent_category Details

Verwandte Themen