2015-11-30 28 views
8

我有兩個表:表1,表2下面給出多列左從表1的加入,表2

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 

我的預期輸出是

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

可以有一個人幫我找出確切查詢。應該使用左外連接。

+0

[如何在多個列上執行INNER JOIN]可能的重複(http://stackoverflow.com/questions/2366780/how-to-do-an-inner-join-on-multiple-columns) –

+3

1看到正常化。數據庫表格不是電子表格。 – Strawberry

+0

@Strawberry:你說的是對的。但這是我項目中現有的數據庫。我只是在做這件事而已。 –

回答

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

感謝它工作:) –

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 

點擊以下鏈接查看正在運行的演示。

SQLFiddle

+0

謝謝:)它的工作,但我的確切輸出是由CMadhu給出。因爲他使用了左外連接。我已經爲您投票 –

0

選擇t.pr,s.name,s1.name,s2.name,s3.name從受試者S,受試者S1,S2的受試者,受試者S3,time_t的噸其中s。 id = t.pr 和s1.id = t.p2和s2.id = t.p3和s3.id = t.p4;