mysql三表查询30个经典案例

  • 创建三个表a、b、c
  • 表a中的数据
  • 表b中的数据
  • 表c中的数据
  • 1.查询出学习成绩70分以上的学生姓名与成绩与学科;
  • 2.查询姓名以mi结尾的学生姓名及其任课老师姓名;
  • 3.选修课名为math的学生学号与姓名;
  • 4.选修课号为C4的学生学号;
  • 5.请问每科各有那些学生求姓名成绩;
  • 6.请问总分在80分以上的学生姓名及学科;
  • 7.请问考试不及格的考生姓名以及科目名称;
  • 8.找出所有科目中最高分的学生姓名成绩
  • 9.各个科目的平均成绩各是多少;
  • 10.显示出参加考试的学生的学号和姓名;
  • 11.请问 Ye Xiaoming一共参加了几门科目的考试;
  • 12.请求出Ye Xiaoming同学所有任课老师的名字及其所教的课程名;
  • 13.求每个同学的年龄和性别,姓名
  • 14.请问武老师教什么课程,以及他班上所有学生的姓名;
  • 15.统计art选修课中有多少男生和女生,(1表示男生,0表示女生)


创建三个表a、b、c

create table `a`(
	`id` int(10),
	`name` VARCHAR(20),
	`age` int(5),
	`sex` int(1)
);
CREATE table `b`
(
	`id` int(10),
	`bid` char(10),
	grade CHAR(20)
);
CREATE table `c`(
	`bid` char(10),
	`cname` char(20),
	`teacher` char(20)
)

表a中的数据

mysql查出三表数据 mysql三表查询_mysql

表b中的数据

mysql查出三表数据 mysql三表查询_mysql查出三表数据_02

表c中的数据

mysql查出三表数据 mysql三表查询_mysql_03

1.查询出学习成绩70分以上的学生姓名与成绩与学科;

SELECT name,grade,cname FROM a,b,c where a.id = b.id and c.bid = b.bid and grade>70

mysql查出三表数据 mysql三表查询_mysql_04

2.查询姓名以mi结尾的学生姓名及其任课老师姓名;

SELECT name,teacher FROM a,b,c where a.id = b.id and c.bid = b.bid and name like ‘%ng’

mysql查出三表数据 mysql三表查询_数据库_05

3.选修课名为math的学生学号与姓名;

SELECT a.id,name FROM a,b,c where a.id = b.id and c.bid = b.bid and cname = ‘math’

mysql查出三表数据 mysql三表查询_三表查询_06

4.选修课号为C4的学生学号;

SELECT a.id FROM a,b,c where a.id = b.id and c.bid = b.bid and b.bid = ‘c4’

mysql查出三表数据 mysql三表查询_数据库_07

5.请问每科各有那些学生求姓名成绩;

SELECT a.name,grade,cname FROM a,b,c where a.id = b.id and c.bid = b.bid

mysql查出三表数据 mysql三表查询_数据库_08

6.请问总分在80分以上的学生姓名及学科;

SELECT a.name,cname FROM a,b,c where a.id = b.id and c.bid = b.bid and grade>80

mysql查出三表数据 mysql三表查询_数据库_09

7.请问考试不及格的考生姓名以及科目名称;

SELECT a.name,cname FROM a,b,c where a.id = b.id and c.bid = b.bid and grade<60

mysql查出三表数据 mysql三表查询_mysql_10

8.找出所有科目中最高分的学生姓名成绩

SELECT any_value(a.name),any_value(grade),max(cname) FROM a,b,c where a.id = b.id and c.bid = b.bid ORDER BY cname desc

mysql查出三表数据 mysql三表查询_mysql查出三表数据_11

9.各个科目的平均成绩各是多少;

SELECT avg(grade),cname FROM a,b,c where a.id = b.id and c.bid = b.bid GROUP BY cname

mysql查出三表数据 mysql三表查询_sql_12

10.显示出参加考试的学生的学号和姓名;

SELECT a.id,name FROM a,b,c where a.id = b.id and c.bid = b.bid

mysql查出三表数据 mysql三表查询_数据库_13

11.请问 Ye Xiaoming一共参加了几门科目的考试;

SELECT a.id,cname FROM a,b,c where a.id = b.id and c.bid = b.bid and name=‘Ye Xiaoming’

mysql查出三表数据 mysql三表查询_sql_14

12.请求出Ye Xiaoming同学所有任课老师的名字及其所教的课程名;

SELECT cname,teacher FROM a,b,c where a.id = b.id and c.bid = b.bid and name=‘Ye Xiaoming’

mysql查出三表数据 mysql三表查询_mysql_15

13.求每个同学的年龄和性别,姓名

SELECT name,age,sex FROM a,b,c where a.id = b.id and c.bid = b.bid

mysql查出三表数据 mysql三表查询_sql_16

14.请问武老师教什么课程,以及他班上所有学生的姓名;

SELECT name,cname FROM a,b,c where a.id = b.id and c.bid = b.bid and teacher like ‘wu%’

mysql查出三表数据 mysql三表查询_mysql_17

15.统计art选修课中有多少男生和女生,(1表示男生,0表示女生)

SELECT COUNT(sex),sex FROM a,b,c where a.id = b.id and c.bid = b.bid and cname=‘art’ GROUP BY sex

mysql查出三表数据 mysql三表查询_三表查询_18