資料準備
create
table student(stu_no int(10
),name varchar(20
));insert student values(1
,"mike");
insert student values(2
,"jin");
insert student values(3
,"tina");
insert student values(4
,"fke");
stu_no name
1 mike
2 jin
3 tina
4 fke
create
table score(stu_no int(10
),grade int(20
));insert score values(1
,70);
insert score values(2
,80);
insert score values(6
,70);
stu_no grade170
280670
以左邊的表為基準,將右邊的表的內容新增到左邊的表中,凡是左邊表中有的記錄新錶中都有,如果右邊的表沒有則用 null 補齊
select
*from student a left
join score b on a.stu_no=b.stu_no;
stu_no name stu_no grade
1 mike 1
702 jin 2
803 tina null
null
4 fke null
null
以右邊的表為基準,將左邊的表的內容新增到右邊的表中,凡是右邊表中有的記錄新錶中都有,如果左邊的表沒有則用 null 補齊
select
*from student a right
join score b on a.stu_no=b.stu_no;
stu_no name stu_no grade
1 mike 1
702 jin 2
80null
null
670
類似於取兩張表的交集,只有兩個表中都有的才會在結果表中展示
select
*from student a inner
join score b on a.stu_no=b.stu_no;
stu_no name stu_no grade
1 mike 1
702 jin 2
80
mysql沒有這個操作, 是針對oracle的取並集操作備註: 外關聯, 等一系操作雖然沒有但是可以利用查詢語句構建實現出來
mysql join實現演算法
mysql join join是sql中非常重要的運算子,8.0版本之前的mysql只支援一種join演算法 nested loop join 巢狀迴圈連線 nested loop join有三種實現方式 nested loop join,index nested loop join,block n...
MySQL join 連表查詢索引問題
首先先建立兩個臨時表,並加一條基礎資料進去 create table user id int auto increment comment 自增主鍵 primary key,name varchar 30 null comment 使用者名稱 create time datetime notnull...
通過表關聯實現查詢
建資料庫students 建立三個 分別儲存學生,教師,課程資訊 mysql create table student key student int 5 not null auto increment,student name varchar 20 not null,primary key key...