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

2018-10-29  本文已影响0人  凡星点点5

一、多表关联

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

关联方法

  1. where
  1. join
  2. 原理
  1. 内连接
14245353-689090322340c7ce.png

3. 左连接 left join

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


14245353-d4fd1c7af619c1a0.png

格式

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


    14245353-aaba22bfb2d58c33.png
    14245353-447976955158ec07.png

    格式

二、嵌套

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
上一篇下一篇

猜你喜欢

热点阅读