1、准備了50道 練習sql的題目,今天就開始練習了 :
首先 我們介紹所有表的結構,后面練習就已這些表開展
學生 student 表:
create table Student(id varchar(10),stdentname varchar(10),age datetime, sex varchar(10));
課程表:
create table student_course(id varchar(10),coursename nvarchar(10),teacherid varchar(10));
教師表:
create table Teacher(id varchar(10),teacher_name varchar(10));
學生分數表:
create table student_score(studentid varchar(10),courseid varchar(10),score decimal(18,1));
第一題: 查詢 課程01 比課程 02分數高的學生信息
分析: 先查 學生分數表 得到結果 再與學生信息表 進行聯合查詢 join 這里要使用right join 關於right join 與 left join的區別 上篇文章的已經寫過
sql:
SELECT * FROM student RIGHT JOIN
(SELECT t1.studentid, class1, class2 FROM
( SELECT studentid, score AS class1 FROM student_score WHERE student_score.courseid = 01 ) AS t1,
( SELECT studentid, score AS class2 FROM student_score WHERE student_score.courseid = 02 ) AS t2
WHERE t1.studentid = t2.studentid AND t1.class1 > t2.class2)r
ON student.id = r.studentid
分析: