2018-10-26多表关联&嵌套

一、多表关联

两表关联必须得有一个关联字段

  • 14245353-d2b14f4a1941f56b.png

    下图中的 cst_id 为 us 和 cu 里面的共同关联字段

关联方法

  1. where
  • 第一步 拿两表数据做笛卡尔乘积
  • 第二步 根据where条件进行筛选


    14245353-ce69b5417f6685e2.png
  1. join
  2. 原理
  • 第一步 先用on条件进行数据筛选
  • 第二步 满足条件的显示,不满足条件的丢弃


    14245353-b94521c5accf8bf4.png
  1. 内连接
  • 只显示满足条件的数据 用 join 或者 inner join 进行连接


    14245353-67a3b5c0a639bb66.png
14245353-689090322340c7ce.png
  • 格式
    select * from 表1 join 表2 on 连接条件

3. 左连接 left join

左表为主表,左表中所有数据都显示,右表中只显示满足条件的数据,如若右表没有数据,则用null表示。


14245353-d4fd1c7af619c1a0.png

格式

  • select * from 表1 left join 表2 on 连接条件
  1. 右连接 right join
    右表为主表,右表中所有数据都显示,左表中只显示满足条件的数据,如若左表没有数据,则用null表示


    14245353-aaba22bfb2d58c33.png

    14245353-447976955158ec07.png

    格式

  • select * from 表1 right join 表2 on 连接条件

二、嵌套

14245353-4d0112e8ff2d73ab.png

21、查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。
SELECT * FROM scoresWHERE degree>(SELECT MAX(degree) FROM scores WHERE sno='109')AND cno='3-105';
22、查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。
SELECT sbirthday FROM students WHERE sno='108';
SELECT sno,sname,sbirthday FROM students WHERE sbirthday =(SELECT sbirthday FROM students WHERE sno='108');
23、查询“张旭“教师任课的学生成绩。
SELECT tno FROM teachers WHERE tname ='张旭'; -- 根据姓名查找tno
SELECT cno FROM coursesWHERE tno=(SELECT tno FROM teachers WHERE tname ='张旭'); -- 根据上一步的 tno 查找 cno
SELECT degree FROM scores WHERE cno = (SELECT cno FROM coursesWHERE tno=(SELECT tno FROM teachers WHERE tname ='张旭')); -- 根据上一步的cno展示degree

14245353-41928340d95741d1.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1).创建数据库 create database学生选课数据库 2).创建四张表 Create table Stu...
    blvftigd阅读 5,529评论 0 0
  • 最近打算采用关系型数据库来理一下公司的运营数据,先拿点东西练手找感觉。下面是几个关于学生课业的表,需要建立一个数据...
    九天朱雀阅读 4,571评论 0 3
  • 一、多表关联 两表关联必须得有一个关联字段 下图中的 cst_id 为 us 和 cu 里面的共同关联字段cst_...
    就是注册简书的阅读 1,677评论 0 0
  • 不知不觉,冬天慢慢逼近并完全成为主角,在舞台上肆意挥洒它的威力。似乎昨天还穿着风衣,敞着前摆,潇洒自如的出入,如今...
    忆君追梦阅读 4,183评论 0 2
  • 开了个属于自己的公众号。就是这么地突然。斜杠青年,指的是这样一个人群:他们不满足单一职业和身份的束缚,而是选择一种...
    飞儿FLY阅读 1,105评论 0 0