一、数据库中有三张如下所示的表(学生表,教师表,成绩表),查出橘右京老师的学生所有分数,按照成绩倒序排列;
分析:1)本质是一个三表联查问题,SQL语句为:
select * from A inner join 表B on 表A.列1=表B.列2 inner join 表C on 表B.列1=表C.列1
2)降序问题语法为:order by 字段 desc;
-- 查询橘右京的学生所有分数按照倒序排列
use dali
select stuId,stuName,stuScore,teaName from score s inner join students st on s.stuId=st.id
inner join teacher t on st.teaId=t.id where teaName="橘右京" order by s.stuScore desc;
结果:
附:创表过程
-- 创建数据库dali
create database dali;
use dali;
-- 创建学生表
CREATE TABLE `students` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`stuName` varchar(12) NOT NULL COMMENT '学生姓名',
`teaId` int(11) NOT NULL COMMENT '教师id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生表';
-- 创建教师表
CREATE TABLE `teacher` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`teaName` varchar(12) NOT NULL COMMENT '老师姓名',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='教师表';
-- 创建成绩表
CREATE TABLE `score` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`stuScore` int(12) NOT NULL COMMENT '学生成绩',
`stuId` int(11) NOT NULL COMMENT '学生id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='成绩表';