(-1)写在前面

文章参考http://blog.sina.com.cn/willcaty。

针对其中的一道练习题想出两种其他的答案,希望网友给出更多回答。

(0) 基础数据

student表

+-----+--------+------+-------+------------+--------------+

| id  | name   | sex  | birth | department | address      |

+-----+--------+------+-------+------------+--------------+

| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |

| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |

| 905 | 王五   | 女   |  1991 | 英语系     | 福建省厦门市 |

| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 |

+-----+--------+------+-------+------------+--------------+

score表

+----+--------+-----------+-------+

| Id | Stu_id | C_Name    | Grade |

+----+--------+-----------+-------+

| 23 |    901 | 计算机    |    98 |

| 24 |    901 | 英语      |    80 |

| 25 |    902 | 计算机    |    65 |

| 26 |    902 | 中文      |    88 |

| 27 |    903 | 中文      |    95 |

| 28 |    904 | 计算机    |    70 |

| 29 |    904 | 英语      |    92 |

| 30 |    905 | 英语      |    94 |

| 31 |    906 | 计算机    |    90 |

| 32 |    906 | 英语      |    85 |

+----+--------+-----------+-------+

(1)查询同时参加计算机和英语考试的学生的信息

方式一:

SELECT a.* FROM student a ,score b ,score c

WHERE a.id=b.stu_id

AND b.c_name='计算机'

AND a.id=c.stu_id

AND c.c_name='英语';

方式二:

SELECT *  FROM student

WHERE id =ANY

( SELECT stu_id FROM score

WHERE stu_id IN (

SELECT stu_id FROM

score WHERE c_name=  '计算机')

AND c_name= '英语' );

方式三:

select * from student where id in(

select s.stu_id from (select stu_id from score where c_name = '计算机') s

(select stu_id from score where c_name='英语') as t where s.stu_id=t.stu_id)

方式四:

select * from student where id in (

select stu_id from score where c_name ='计算机' and stu_id in(

select stu_id from score where c_name ='计算机'));

 (2) 正确答案

+-----+--------+------+-------+------------+--------------+

| id  | name   | sex  | birth | department | address      |

+-----+--------+------+-------+------------+--------------+

| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |

| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |

| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 |

+-----+--------+------+-------+------------+--------------+

mysql练习题-查询同时参加计算机和英语考试的学生的信息-遁地龙卷风的更多相关文章

  1. MySQL中查询获取每个班级成绩前三名的学生信息

    CREATE TABLE t_testscore( pk_id INT PRIMARY KEY, c_name VARCHAR(50) , c_score INT, c_class INT )DEFA ...

  2. MySQL练习题1

    以下SQL操作均在MYSQL上测试过 首先是表定义 1.创建student和score表 CREATE TABLE student ( id ) NOT NULL UNIQUE PRIMARY KEY ...

  3. mysql经典查询语句-笔记

    笔记来源公开课,谢谢! 1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name ...

  4. 笔记-4:mysql数据查询

    1.创建查询表 1.1 创建班级表 含义 字段名 数据类型 宽度 班级编号 classNo 字符型 6 班级名称 className 字符型 20 所属院系 department 字符型 30 年级 ...

  5. mysql 分组查询前n条数据

    今天去面试,碰到一道面试题: 有一个学生成绩表,表中有 表id.学生名.学科.分数.学生id .查询每科学习最好的两名学生的信息: 建表sql: CREATE TABLE `stuscore` ( ` ...

  6. MYSQL之查询篇

    2. 数据库操作 数据库在创建以后最常见的操作便是查询 2.1 查询 为了便于学习和理解,我们预先准备了两个表分别是stduents表和classes表两个表的内容和结构如下所示 students表的 ...

  7. MySQL 表查询语句练习题

    MySQL 表查询语句练习题: 一.  设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表 ...

  8. MYSQL select查询练习题

    10. 查询Score表中的最高分的学生学号和课程号.(子查询或者排序) select sno,cno from score where degree=(select max(degree) from ...

  9. mysql常见查询练习题

    #建学生信息表student create table student ( sno varchar(20) not null primary key, sname varchar(20) not nu ...

随机推荐

  1. 东软HIS切换输入法卡死的解决方法

    在文字选项的第二页上,勾选上边的相容性设定,然后重启电脑:

  2. Mac OSX+VirtualBox+Vagrant+CentOS初体验

    1.安装VirtualBox VirtualBox下载地址 免费小巧非常适用,根据自己机器系统选择下载包 VirtualBox 安装包 2.安装并使用Vagrant 1)Vagrant下载地址 选择下 ...

  3. [LeetCode] K-th Smallest in Lexicographical Order 字典顺序的第K小数字

    Given integers n and k, find the lexicographically k-th smallest integer in the range from 1 to n. N ...

  4. [LeetCode] Read N Characters Given Read4 用Read4来读取N个字符

    The API: int read4(char *buf) reads 4 characters at a time from a file.The return value is the actua ...

  5. 【swift学习笔记】五.使用枚举优雅的管理Segue

    在做页面转跳的时候,我们要给Segue命名,如果Segue多了,管理他们就是一个恶梦.我们可以枚举更优雅的管理这些Segue. 1.我们先来建立一个protocol,他的功能就是让实现类实现一个Seg ...

  6. 百度广告 高亮 Chrome插件(附源码)

    一前言 百度最近是上了舆论头条了,相信中过百度毒的人对百度都反感.百度自己挖了这么多坑,终究还是要自己来填.国内网民使且最频繁的搜过 还是以百度为主,而百度依靠这种市场占有率靠他的广告竞价排名大发横财 ...

  7. 对于一个div下两个横内元素对其或者居中的方法

    我们会经常遇到这样的对其问题图片和文字,或者文字和单选按钮之类的,而且,如果文字不是12px或者14px,有时候想大一点的时候,会出现对不起的情况或者居中不了. 下面我们来看看: 有时候会出现: 这种 ...

  8. "Installation failed !" in GUI but not in CLI (/usr/bin/winusb: line 78: 18265 Terminated )

    "Installation failed !" in GUI but not in CLI (/usr/bin/winusb: line 78: 18265 Terminated ...

  9. 使用 Docker 编译 OpenWRT(Widora)

    Docker 是一种新的被称之为容器的虚拟机.本文将使用此工具,进行 OpenWRT 的编译. 在 Docker 中下载 Ubuntu 14.04 的镜像 使用以下命令可以十分方便的从远程服务器上将 ...

  10. 线程join理解

    1.python默认参数创建线程后,不管主线程是否执行完毕,都会等待子线程执行完毕才一起退出,有无join结果一样 2.如果创建线程,并且设置了daemon为true,即thread.setDaemo ...