2015-11-30 9 views
8

Ich habe zwei Tabellen: Tabelle 1, Tabelle 2 wie unten angegebenMehrere Spalte von table1 verbinden links, table2

table1: 
id name 
1 tamil 
2 english 
3 maths 
4 science 

table2: 
p1 p2 p3 p4 stat name 
1 2 4 3 A raja 
2 3 4 1 A maha 

meine erwartete Ausgabe ist

p1  p2  p3  p4 
tamil english science maths 
english maths  science tamil 

jemand mir helfen kann, die genaue, um herauszufinden, query.That sollte linken äußeren Join verwenden.

+0

Mögliches Duplikat von [Wie man einen INNEREN VERBINDUNG auf mehreren Spalten macht] (http://stackoverflow.com/questions/2366780/how-to-do-aninner-join-on-multiple-columns) –

+3

1 Siehe Normalisierung. Eine Datenbanktabelle ist keine Tabelle. – Strawberry

+0

@Strawberry: was Sie gesagt haben, ist richtig. Aber das war die existierende DB in meinem Projekt. Ich arbeite gerade daran, das ist alles. –

Antwort

2
select P1, t1.Name,P2, t3.Name, P3,t4.Name, P4 , t5.Name From Table2 T2 
left join table1 t1 on 
T2.P1 = T1.Id 
left join table1 t3 on 
T2.P2 = T3.Id 
left join table1 t4 on 
T2.P3 = T4.Id 
left join table1 t5 on 
T2.P4 = T5.Id 
+0

Danke, es hat funktioniert :) –

3
SELECT t1.name AS p1, t2.name AS p2, t3.name AS p3, t4.name AS p4 
FROM table2 tbl2 INNER JOIN table1 t1 ON tbl2.p1 = t1.id 
INNER JOIN table1 t2 ON tbl2.p2 = t2.id 
INNER JOIN table1 t3 ON tbl2.p3 = t3.id 
INNER JOIN table1 t4 ON tbl2.p4 = t4.id 

Klicken Sie auf den Link unten für eine laufende Demo.

SQLFiddle

+0

danke :) es hat funktioniert, aber ich meine genaue Ausgabe wird von CMadhu gegeben. da er die linke äußere Verbindung verwendete. Ich habe für Sie gewählt –

0

wählen t.pr, s.name, s1.name, s2.name, s3.name von Probanden s, Themen s1, s2 Fächer, Themen s3, Time_t t, wobei s. id = t.pr und s1.id = t.p2 und s2.id = t.p3 und s3.id = t.p4;

Verwandte Themen