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]