使sql连接查询复杂化

时间:2014-03-14 23:06:21

标签: php mysql sql sql-server

我需要合并2个表格并显示一个表格。

我已经用PHP做过了,但我想用SQL本身做。

表1:venki

code  subject
10    english
11    tamil
12    history

表2:venki2

num opt1 opt2 opt3 allot 
f41  12    11   10   12

我需要显示一个包含num.venki2opt1opt2opt3allot(5列)列的表格。对于最后4列,必须从表1中获取值,例如:f41,history。泰米尔,英语,历史。

2 个答案:

答案 0 :(得分:3)

SELECT t2.num 
      ,J1.[Subject] AS Opt1
      ,J2.[Subject] AS Opt2
      ,J3.[Subject] AS Opt3
      ,J4.[Subject] AS allot
FROM venki2 t2 LEFT JOIN venki J1
ON t2.opt1 = J1.Code
LEFT JOIN venki J2
ON t2.opt2 = J2.Code
LEFT JOIN venki J3
ON t2.opt3 = J3.Code
LEFT JOIN venki J4
ON t2.allot = J4.Code

在Subject周围使用方括号,因为它是sql server中的key word

Working SQL FIDDLE

答案 1 :(得分:0)

select venky2.num, TBLOPT1.[subject], 
TBLOPT2.[subject], TBLOP3.[subject], 
TBLALLOT.[subject]  
from venky2, venky as TBLOPT1, venky as TBLOPT2, venky as TBLOP3, venky as TBLALLOT
left join TBLOPT1 on venky2.opt1=TBLOPT1.code
left join TBLOPT2 on venky.opt2=TBLOPT2.code
left join TBLOP3 on venky2.opt3=TBLOP3.code
left join TBLALLOT on venky2.allot=TBLALLOT.code