mysql的4表聯查講解 mysql

2021-10-18 03:30:55 字數 1703 閱讀 5124

1.測試資料如下

student 表,學生表

sno sname s*** sage sdept

1 劉敏 女 19 計算機

2 周松 男 21 計算機

3 張明 男 20 經貿

4 孟欣 女 21 信管

學生課程表 course

cno cname cpno

1 資料庫 4

2 作業系統 3

3 資訊系統

4 資料結構 2

學生選課表

sno cno grade

1 1 89

1 2 97

1 3 67

2 1 78

2 2 90

使用內聯操作

查詢學生資訊和選課成績

select ss.sno,ss.sname,course.cname,sc.grade from student ss ,sc,course where ss.sno=sc.sno and course.cno=sc.cno;

select ss.sno,ss.sname,course.cname,sc.grade from student ss inner join sc on ss.sno=sc.sno inner join course on course.cno=sc.cno

輸出結果

sno sname cname grade

1 劉敏 資料庫 89

1 劉敏 作業系統 97

1 劉敏 資訊系統 67

2 周松 資料庫 78

2 周松 作業系統 90

課程名稱和選行課程

select c1.cname,c2.cname from course c1,course c2 where c2.cpno=c1.cno;

select c1.cname,c2.cname from course c1 inner join course c2 on c2.cpno=c1.cno

2.左連線

左表所有記錄,右表條件滿足

查詢所有學生的成績

select sx.*,sc.cno,sc.grade from student sx left join sc on sc.sno=sx.sno;

sno sname s*** sage sdept cno grade

1 劉敏 女 19 計算機 1 89

1 劉敏 女 19 計算機 2 97

1 劉敏 女 19 計算機 3 67

2 周松 男 21 計算機 1 78

2 周松 男 21 計算機 2 90

3 張明 男 20 經貿

4 孟欣 女 21 信管

3.右連線

右表全部,左表條件滿足

查詢選課學生的成績 資訊

select sx.*,sc.cno,sc.grade from student sx right join sc on sc.sno=sx.sno;

sno sname s*** sage sdept cno grade

1 劉敏 女 19 計算機 1 89

1 劉敏 女 19 計算機 2 97

1 劉敏 女 19 計算機 3 67

2 周松 男 21 計算機 1 78

2 周松 男 21 計算機 2 90

4.子查詢 exists

先執行外層,然後將執行外層的每一行都傳遞到子查詢裡面,然後比對,得出真假,類似 巢狀的 2 個遍歷

mysql 多表聯查 MySQL的多表聯查

今天是周二,我們一起來研究下mysql的多表聯查啊。或許你也知道,表之間的關係有 1對1 1對多 多對多。然後.1.巢狀查詢 乙個查詢的結果是另外sql查詢的條件 如 查詢stu表中年齡最大的是誰?mysql select from stu where age select max age from...

MySQL多張表關聯查詢

工作中遇到的問題,其實也不算難,最多算是複雜了一丟丟。有四張表,a,b,c,d 假設 a 商戶表,有欄位code b 商戶普通使用者表,也有字段code ps code是關聯著三張表的重要字段 c 商戶會員表,沒有與其關聯的code,但是有card code欄位與d表中的card code關聯 d ...

mysql兩表聯查和內聯 MySQL的多表聯查

如 查詢stu表中年齡最大的是誰?mysql select from stu where age select max age from stu mysql select from stu where age in select max age from stu 子查詢結果是多條時使用in查詢 id...