50个查询系列-第11个查询:查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;

select distinct( tblstudent.StuId) from tblstudent ,

tblscore
where  tblscore.CourseId
 in
(
select tblscore.CourseId from tblscore where tblscore.StuId=‘1001‘
)
and tblstudent.StuId=tblscore.StuId

答案提供两种方法;

1:

Select DistInct st.StuId,StuName From tblStudent st
  Inner Join tblScore sc ON st.StuId=sc.StuId
   Where sc.CourseId IN (Select CourseId From tblScore Where StuId=‘1001‘)

2:

 ------嵌套子查询
 Select StuId,StuName From tblStudent
  Where StuId In
  (
   Select Distinct StuId From tblScore Where CourseId In (Select CourseId From tblScore Where StuId=‘1001‘)
  )
时间: 2024-12-18 03:33:42

50个查询系列-第11个查询:查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;的相关文章

【sql: 练习题8】查询至少有一门课与学号为" 01 "的同学所学相同的同学的信息

题目:查询至少有一门课与学号为" 01 "的同学所学相同的同学的信息 分析:我们可以先在student_score 表中 查找学号为01 的学生的学习记录,然后再查所有记录的course in 里面 就得到一个具有学生id的结果集,在查学生信息表,拿到学生信息 于是sql 有: SELECT * FROM student,    (SELECT DISTINCT student_score.studentid FROM student_score WHERE courseid IN 

50个查询系列-第三个查询:查询所有同学的学号、姓名、选课数、总成绩;

查询最主要的就是确定查询的主表,和辅助表. 这个的话我们可以确认是用子查询. 主表就是我们的学生表:tblstudent可以查到学生的学号,姓名 辅助表就是成绩表,tblscore 自己写的语句如下: SELECT tblstudent.StuId,tblstudent.StuName,xuankeshu.kscount,kccj.countscore FROM TBLSTUDENT , ( SELECT count(tblscore.CourseId) kscount,tblscore.Stu

mybatis学习笔记(11)-多对多查询

mybatis学习笔记(11)-多对多查询 mybatis学习笔记11-多对多查询 示例 多对多查询总结 resultMap总结 本文实现多对多查询,查询用户及用户购买商品信息. 示例 查询主表是:用户表 关联表:由于用户和商品没有直接关联,通过订单和订单明细进行关联,所以关联表:orders.orderdetail.items sql SELECT orders.*, user.username, user.sex, user.address, orderdetail.id orderdeta

mybatis学习笔记(11)-一对多查询

mybatis学习笔记(11)-一对多查询 mybatis学习笔记11-一对多查询 示例 小结 本文实现一对多查询,查询订单及订单明细的信息 示例 sql 确定主查询表:订单表 确定关联查询表:订单明细表 在一对一查询基础上添加订单明细表关联即可. SELECT orders.*, user.username, user.sex, user.address, orderdetail.id orderdetail_id, orderdetail.items_id, orderdetail.item

SQL Server调优系列基础篇(子查询运算总结)

原文:SQL Server调优系列基础篇(子查询运算总结) 前言 前面我们的几篇文章介绍了一系列关于运算符的介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符.有兴趣的童鞋可以点击查看. 本篇我们介绍关于子查询语句的一系列内容,子查询一般是我们形成复杂查询的一些基础性操作,所以关于子查询的应用方式就非常重要. 废话少说,开始本篇的正题. 技术准备 数据库版本为SQL Server2008R2,利用微软

SQL语句优化系列三(关于select查询)

关于select查询 输出表中的所有列   select  *  from 表名 输出表中的部分列   select  字段名表 from 表名 为结果集内的列指定列名  select  {字段名1 [ as 列的别名]  [,-n]}  from 表名 消除取值重复的行,在select 后面紧跟 distinct 限制返回的行数    select  top 行数 列名表 from 表名 查询满足条件的元组  select  *  from 表名 where 查询条件 比较:列表达式1 比较运

11 使用子查询

11.1 利用子查询进行过滤 我们用一个例子来展示一下利用子查询进行过滤 现在有3个数据表:orders表 ,orderitems表 和customers表 .订单分别存储在前两个表中. 对于包含订单号.客户ID. 订单日期的每个订单, 在orders表中存储一行. 各订单的物品存储在相关的orderitems表中.orders表不存储客户信息.它只存储客户的ID.实际 的客户信息存储在customers表中. 现在,假如需要列出订购物品TNT2的所有客户, 具体的步骤为: 检索包含物品TNT2

11、hibernate查询、连接池、二级缓存

Hibernate第三天: 1. 对象状态 2. session缓存 3. lazy懒加载 4. 映射 一对一对映射 组件/继承映射 目标: 一.hibernate查询 二.hibernate对连接池的支持 三.二级缓存 四.Hibernate与Struts小案例(项目中session的管理方式) 一.hibernate查询 查询概述 1)Get/load主键查询 2)对象导航查询 3)HQL查询, Hibernate Query language hibernate 提供的面向对象的查询语言.

大数据系列之分布式大数据查询引擎Presto

关于presto部署及详细介绍请参考官方链接 http://prestodb-china.com PRESTO是什么? Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节. Presto的设计和编写完全是为了解决像Facebook这样规模的商业数据仓库的交互式分析和处理速度的问题. 它可以做什么? Presto支持在线数据查询,包括Hive, Cassandra, 关系数据库以及专有数据存储. 一条Presto查询可以将多个数据源的数据进行合并,可以跨越