Mysql 的七種 join sql 編寫

2022-08-31 07:27:13 字數 2922 閱讀 9225

首先建立兩張表

create table `t_user` (

`id` bigint(16) not null auto_increment,

`name` varchar(64) not null,

`age` int(4) not null,

`gender` tinyint(2) default null,

primary key (`id`)

) engine=innodb auto_increment=5 default charset=utf8

create table `customer` (

`id` bigint(16) not null auto_increment,

`name` varchar(64) not null,

`age` int(4) not null,

`mobile` char(11) not null,

`t_id` bigint(16) default null,

primary key (`id`)

) engine=innodb auto_increment=4 default charset=utf8

left join 查詢 a(包含ab的交集)

select * from customer c left join t_user u on c.`t_id` = u.id
查詢結果為:

a為主表,b沒有資料會自動補為 null

right join 查詢 b (包含ab的交集)

select * from customer c right join t_user u on c.`t_id` = u.id
查詢結果為:

b為主表,a查詢不到資料會自動補為null

inner join 查詢 ab的交集

select * from customer c inner join t_user u on c.`t_id` = u.id
查詢結果為:

查詢a和b的交集

left join 查詢 a (不包含ab的交集)

select * from customer c left join t_user u on c.`t_id` = u.id where u.id is null
查詢結果為:

**查詢出不包含ab交集的a的部分,使用u.id is null找到b為null的部分,也就是不含交集的部分,從而查詢出不含ab交集的a的部分 **

right join 查詢b (不包含ab的交集)

select * from customer c right join t_user u on c.`t_id` = u.id where c.id is null
查詢結果為:

原理與上面一樣,通過c.id is null 查詢出不包含ab交集的b的部分

查詢a和b的全部

查詢結果為:

查詢a b的獨有

查詢結果為:

七種Mysql表型別

學習mysql資料庫,mysql表型別都有哪些是一定需要知道的,下面就為您介紹七種mysql表型別,希望能對您學習mysql表型別有所幫助。mysql作為當前最為流行的免費資料庫服務引擎,已經風靡了很長一段時間,不過也許也有人對於mysql的內部環境不很了解,尤其那些針對併發性處理的機制。今天,我們...

七種Mysql表型別

學習mysql資料庫,mysql表型別都有哪些是一定需要知道的,下面就為您介紹七種mysql表型別,希望能對您學習mysql表型別有所幫助。作為當前最為流行的免費資料庫服務引擎,已經風靡了很長一段時間,不過也許也有人對於mysql的內部環境不很了解,尤其那些針對併發性處理的機制。今天,我們先了解一下...

七種Mysql表的型別

七種mysql表的型別 學習mysql資料庫,mysql表型別都有哪些是一定需要知道的,下面就為您介紹七種mysql表型別,希望能對您學習mysql表型別有所幫助。www.2cto.com mysql作為當前最為流行的免費資料庫服務引擎,已經風靡了很長一段時間,不過也許也有人對於mysql的內部環境...