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閱讀 1,612評論 0 0
  • 最近打算采用關系型數據庫來理一下公司的運營數據,先拿點東西練手找感覺。下面是幾個關于學生課業的表,需要建立一個數據...
    九天朱雀閱讀 1,000評論 0 3
  • 一、多表關聯 兩表關聯必須得有一個關聯字段 下圖中的 cst_id 為 us 和 cu 里面的共同關聯字段cst_...
    就是注冊簡書的閱讀 237評論 0 0
  • 不知不覺,冬天慢慢逼近并完全成為主角,在舞臺上肆意揮灑它的威力。似乎昨天還穿著風衣,敞著前擺,瀟灑自如的出入,如今...
    憶君追夢閱讀 774評論 0 2
  • 開了個屬于自己的公眾號。就是這么地突然。斜杠青年,指的是這樣一個人群:他們不滿足單一職業和身份的束縛,而是選擇一種...
    飛兒FLY閱讀 164評論 0 0