链接

1、将老师的姓名和所教课程罗列出来

SELECT teacher_id,tname,cname FROM course
LEFT JOIN teacher ON course.`teacher_id`=teacher.`tid`;

2、查询所有的学生姓名及所在班级信息

SELECT * FROM student
LEFT JOIN class ON student.`class_id` = class.`cid`;

3、临时表

SELECT * FROM (SELECT * FROM student) AS B

4、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;

    思路:
        先查到既选择001又选择002课程的所有同学
        根据学生进行分组,如果学生数量等于2表示,两门均已选择
 
SELECT score.`student_id`,student.`sname` FROM score  # 拿到了学过1或者2课程的学生情况
LEFT JOIN student ON score.`student_id` = student.`sid` # 连表可以拿到学生姓名
WHERE course_id IN (1,2) GROUP BY student_id HAVING COUNT(1) >1 # 条件1:学过1,2 条件2:学过课程大于1

5、查询学过“叶平”老师所教的所有课的同学的学号、姓名;

 
    同上,只不过将001和002变成 in (叶平老师的所有课)
SELECT score.`student_id`,student.`sname` FROM score
LEFT JOIN student ON score.`student_id` = student.`sid`
WHERE score.`course_id` IN (
SELECT course.`cid` FROM course LEFT JOIN teacher ON course.`teacher_id` = teacher.`tid` WHERE teacher.`tname` = '李平老师' # 李平老师教授的课程
) GROUP BY score.`student_id` HAVING COUNT(1) = (SELECT COUNT(1) FROM course LEFT JOIN teacher ON course.`teacher_id` = teacher.`tid` WHERE teacher.`tname` = '李平老师'# 李平老师教授课程的总数)

MySQL-连表查询联系的更多相关文章

  1. MySQL多表查询之外键、表连接、子查询、索引

    MySQL多表查询之外键.表连接.子查询.索引 一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为 ...

  2. Mysql 单表查询 子查询 关联查询

    数据准备: ## 学院表create table department( d_id int primary key auto_increment, d_name varchar(20) not nul ...

  3. (转)Mysql 多表查询详解

    MySQL 多表查询详解 一.前言  二.示例 三.注意事项 一.前言  上篇讲到mysql中关键字执行的顺序,只涉及了一张表:实际应用大部分情况下,查询语句都会涉及到多张表格 : 1.1 多表连接有 ...

  4. MySQL多表查询回顾

    ----------------------siwuxie095 MySQL 多表查询回顾 以客户和联系人为例(一对多) 1.内连接 /*内连接写法一*/ select * from t_custom ...

  5. python 3 mysql 单表查询

    python 3 mysql 单表查询 1.准备表 company.employee 员工id id int 姓名 emp_name varchar 性别 sex enum 年龄 age int 入职 ...

  6. python3 mysql 多表查询

    python3 mysql 多表查询 一.准备表 创建二张表: company.employee company.department #建表 create table department( id ...

  7. Mysql 单表查询-排序-分页-group by初识

    Mysql 单表查询-排序-分页-group by初识 对于select 来说, 分组聚合(((group by; aggregation), 排序 (order by** ), 分页查询 (limi ...

  8. Mysql 单表查询where初识

    Mysql 单表查询where初识 准备数据 -- 创建测试库 -- drop database if exists student_db; create database student_db ch ...

  9. MySQL多表查询合并结果union all,内连接查询

    MySQL多表查询合并结果和内连接查询 1.使用union和union all合并两个查询结果:select 字段名 from tablename1 union select 字段名 from tab ...

  10. MySQL多表查询、事务、DCL:内含mysql如果忘记密码解决方案

    MySQL多表查询.事务.DCL 多表查询 * 查询语法: select 列名列表 from 表名列表 where.... * 准备sql # 创建部门表 CREATE TABLE dept( id ...

随机推荐

  1. LOJ 6281 数列分块入门 5

    简化版题意 给出一个长为n的数列,以及n个操作,操作涉及区间开方(每个数都向下取整),区间求和,保证所有数都为有符号32位正整数. N<=50000 Solution 首先我们先思考: 一个有符 ...

  2. x86汇编语言实践(3)

    0 写在前面 为了更深入的了解程序的实现原理,近期我学习了IBM-PC相关原理,并手工编写了一些x86汇编程序. 在2017年的计算机组成原理中,曾对MIPS体系结构及其汇编语言有过一定的了解,考虑到 ...

  3. Redisson分布式锁实现

    转: Redisson分布式锁实现 2018年09月07日 15:30:32 校长我错了 阅读数:3303   转:分布式锁和Redisson实现 概述 分布式系统有一个著名的理论CAP,指在一个分布 ...

  4. cucumber学习笔记

    来源于cucumber官网 学习完了之后全部整理一遍

  5. Python 下划线

    单下划线 "单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和自类对象自己能访问到这些变量. 例子:以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口 ...

  6. (双指针) leetcode 485. Max Consecutive Ones

    Given a binary array, find the maximum number of consecutive 1s in this array. Example 1: Input: [1, ...

  7. About me & 留言板

    本人名字首字母gzy,就读于gryz,是高二在读生,也是一名oier. 老婆:远近渔. 爱好: 各种体育类项目,(但是不精通,不会打台球),喜欢摄影作品,喜欢听rap和摇滚,也喜欢一些描述生活英文歌曲 ...

  8. C# EF使用SqlQuery直接操作SQL查询语句或者执行过程

    Entity Framework是微软出品的高级ORM框架,大多数.NET开发者对这个ORM框架应该不会陌生.本文主要罗列在.NET(ASP.NET/WINFORM)应用程序开发中使用Entity F ...

  9. DirectX11 With Windows SDK--24 Render-To-Texture(RTT)技术的应用

    前言 尽管在上一章的动态天空盒中用到了Render-To-Texture技术,但那是针对纹理立方体的特化实现.考虑到该技术的应用层面非常广,在这里抽出独立的一章专门来讲有关它的通用实现以及各种应用. ...

  10. vue md5

    安装 cnpm install js-md5 --save 使用 import md5 from 'js-md5' md5('要加密的内容')