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...