MySQL JOIN實現表關聯

2021-10-02 12:23:53 字數 1670 閱讀 2454

資料準備

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