xurichusheng 发表于 2013-1-26 12:57:22

4个互相关联的表间的查询

 
4个互相关联的表间的查询
 
 
有下面4个表,它们的关联关系如下:
 
student(1)---classes(n) : 1对多
 
classes(1)---teacher_class(n): 1对多
 
teacher(1)---teacher_class(n): 1对多
 
 
student : stuid(主键)   stuname
classes :  clsid(主键)    clsname
teacher :  tid(主键)       tname
teacher_class : t_c_id(主键)   clsid(外键)   tid(外键)
 
现在要查找 student 表中 stuid 对应的 stuname, clsname, tname.
 
步骤如下:
 
1. 先创建一个视图VIEW,查出 classes、teacher、teacher_class 中的 CLSID,CLSNAME,TID,TNAME
 
 
CREATE OR REPLACE VIEW v_t_c ASSELECT TC.CLSID, C.CLSNAME, T.TID, T.TNAMEFROM TEACHER_CLASS TC, TEACHER T, CLASSES C WHERE TC.TID = T.TID   AND TC.CLSID = C.CLSID; 2. 将表 student 和视图 v_t_c 作联合查询:
 
 
SELECT S.STUNAME, V.CLSNAME, V.TNAMEFROM STUDENT S, V_T_C V WHERE S.CLSID = V.CLSID;
页: [1]
查看完整版本: 4个互相关联的表间的查询