2015-11-30 4 views
8

Mam dwie tabele: Tabela 1, Tabela 2, jak podano poniżejMultiple lewej kolumnie przyłączyć od Tabela1, tabela2

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 

mój oczekiwany wynik jest

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

może ktoś pomoże mi znaleźć się dokładna query.That powinien użyć lewego sprzężenia zewnętrznego.

+0

Możliwy duplikat [Jak zrobić INNER JOIN na wielu kolumnach] (http://stackoverflow.com/questions/2366780/how-to-do-an-inner-join-on-multiple-columns) –

+3

1 Zobacz normalizację. Tabela bazy danych nie jest arkuszem kalkulacyjnym. – Strawberry

+0

@Strawberry: to, co powiedziałeś, jest poprawne. Ale to był istniejący DB w moim projekcie. Właśnie nad tym pracuję. –

Odpowiedz

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

dzięki temu zadziałało :) –

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 

Kliknij poniższy link, aby wyświetlić uruchomione demo.

SQLFiddle

+0

dzięki :) zadziałało, ale moje dokładne wyniki są podane przez CMadhu. ponieważ używał lewego zewnętrznego sprzężenia. Głosowałem za tobą –

0

wybrać t.pr, s.name, s1.name, s2.name, s3.name od pacjentów s, temacie s1, s2 tematów, temacie S3 time_t t gdzie S. id = t.pr i s1.id = t.p2 i s2.id = t.p3 i s3.id = t.p4;

Powiązane problemy