如何编写此SQL语句以连接3个表

时间:2015-04-03 16:40:36

标签: mysql sql join

我有3张桌子: - 注册(Stu_id,姓名,地址,......,状态), 3个选定科目的Applicant_Choice(Stu_id,Sub_id1,Sub_id2,Sub_id3) 主题名称的主题(Sub_id,Subject_name,....)

我想以下列形式提取报告: - id,name,address,...申请人表格中存在的Sub_id1,Sub_id2,Sub_id3的3个主题名称,其中Register.status = 6.

到目前为止,我使用循环生成每条记录的主题名称。但申请人表中将有1000条记录。那么在这种情况下生成pdf文件的查询太多了!!!任何人都可以告诉我如何编写此查询?提前谢谢。

1 个答案:

答案 0 :(得分: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