查询课程编号为”01“的课程比”02“的课程成绩高的所有学生的学号
SELECT a.s_id "学号",c.s_name "姓名", a.s_score "01", b.s_score "02" FROM
(SELECT s_id, c_id, s_score
FROM score
WHERE c_id ='01'
)AS a
INNER JOIN
(SELECT s_id, c_id, s_score
FROM score
WHERE c_id ='02'
)AS b ON a.s_id = b.s_id
INNER JOIN student AS c ON c.s_id = a.s_id
WHERE a.s_score > b.s_score;
新知识点:多表链接方法(INNER JOIN 0N)
1、连接两个数据表的用法:
FROM Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort
语法格式可以概括为:
FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号
2、 连接三个数据表的用法:
FROM (Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort) INNER JOIN MemberLevel ON Member.MemberLevel=MemberLevel.MemberLevel
语法格式可以概括为:
FROM (表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号
3、 连接四个数据表的用法:
FROM ((Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort) INNER JOIN MemberLevel ON Member.MemberLevel=MemberLevel.MemberLevel) INNER JOIN MemberIdentity ON Member.MemberIdentity=MemberIdentity.MemberIdentity
语法格式可以概括为:
FROM ((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号