2015-04-03 26 views
-1

我有3個表: - 寄存器(Stu_id,名稱,地址,...,狀態), Applicant_Choice(Stu_id,Sub_id1,Sub_id2,Sub_id3)科目 主題名稱的主題(Sub_id,Subject_name,....)如何編寫此SQL語句以加入3個表

我想以下列格式提取報表: - id,name,address,... 3 Sub_id1,Sub_id2,Sub_id3存在的主題名稱在申請表中,其中Register.status = 6.

到目前爲止,我正在使用循環來爲每條記錄生成主題名稱。但申請表中將有1000條記錄。所以在這種情況下,生成PDF文件的查詢太多了!任何人都可以告訴我如何編寫這個查詢?提前致謝。

回答

1

試試這個:

select r.stu_id, r.name, r.address, s1.subject_name, s2.subject_name, s3.subject_name 
    from register r 
    inner join applicant_choice a 
    on r.stu_id = a.stu_id 
    inner join subjects s1 
    on a.sub_id1 = s1.sub_id 
    inner join subjects s2 
    on a.sub_id2 = s2.sub_id 
    inner join subjects s3 
    on a.sub_id3 = s3.sub_id 
    where r.status = 6; 

例小提琴:http://sqlfiddle.com/#!9/5daaa/3

+0

我怎麼會感謝你的先生?這是工作,並幫助了我很多! – 2015-04-03 17:00:12