+ -
当前位置:首页 → 问答吧 → 有3张表,a,b,c a跟b有关系,b跟c有关系

有3张表,a,b,c a跟b有关系,b跟c有关系

时间:2011-12-23

来源:互联网

例如:a表数据:  
 考试科目 考试成绩 考生 考试标题  
  01 02 001 期中考试
b表
  类型id 状态id 名称
  1 01 语文
  1 02 数学
  2 01 优秀
  2 02 良好
  3 001 小明
  3 002 小红
c表
  类型id 名称  
  1 考试科目  
  2 考试成绩  
  3 考生
查询结果要求: 考试科目 考试成绩 考生 考试标题
  语文 良好 小明 期中考试

作者: wsy890427   发布时间: 2011-12-23

SQL code

建这么3张表吧:
create table A(
         calss_id varchar2(10),--考试科目
         score  varchar2(10),--考试成绩
         stu_id varchar2(10),--考生
         title  varchar2(40) --考试标题
  );
create table B(
         type varchar2(10),--类型id
         state  varchar2(10),--状态id
         state_name varchar2(10)--名称  
  );
create table C(
         type varchar2(10),--类型id
         type_name varchar2(10)--名称  
  );
注:实际查询的时候C表是多余的。

sql语句为:

select 
   t1.state_name class_name,t2.state_name score,t3.state_name student_name,t.title 
from A t 
left join B t1 on t1.type=1 and t.calss_id=t1.state
left join B t2 on t2.type=2 and t.score=t2.state
left join B t3 on t3.type=3 and t.stu_id=t3.state
order by class_name,score,student_name




作者: zyuc_wangxw   发布时间: 2011-12-23