MySQL七种JOIN类型小结

今天给大家介绍MySQL七种JOIN类型详解,本文通过sql语句给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

在开始之前,我们创建两个表用于演示将要介绍的其中join类型。

建表

?

1

2

3

4

5

6

create table `tbl_dept` (

`id` int(11) not null auto_increment,

`deptname` varchar(30) default null,

`locadd` varchar(40) default null,

primary key (`id`)

) engine=innodb auto_increment=1 default charset=utf8;

?

1

2

3

4

5

6

7

create table `tbl_emp` (

`id` int(11) not null auto_increment,

`name` varchar(20) default null,

`deptid` varchar(11) not null,

primary key (`id`),

key `fk_dept_id` (`deptid`)

) engine=innodb auto_increment=1 default charset=utf8;

初始化数据

MySQL七种JOIN类型小结MySQL七种JOIN类型小结

七种join

1. a ∩ b

MySQL七种JOIN类型小结

?

1

2

3

4

select < select_list >

from tablea a

inner join tableb b # 共有

on a.key = b.key

MySQL七种JOIN类型小结

2. a ( = a ∩ b + a* )

MySQL七种JOIN类型小结

?

1

2

3

4

select < select_list >

from tablea a

left join tableb b

on a.key = b.key

MySQL七种JOIN类型小结

3. b ( = a ∩ b + b* )

MySQL七种JOIN类型小结

?

1

2

3

4

select < select_list >

from tablea a

right join tableb b

on a.key = b.key

MySQL七种JOIN类型小结

4. a* ( = a – a ∩ b )

MySQL七种JOIN类型小结

?

1

2

3

4

5

select < select_list >

from tablea a

left join tableb b

on a.key = b.key # on时主表保留

where b.key is null # 筛选a表数据

MySQL七种JOIN类型小结

5. b* ( = b – a ∩ b )

MySQL七种JOIN类型小结

?

1

2

3

4

5

select < select_list >

from tablea a

right join tableb b

on a.key = b.key

where a.key is null

MySQL七种JOIN类型小结

6. a ∪ b

MySQL七种JOIN类型小结

?

1

2

3

4

select < select_list >

from tablea a

full outer join tableb b ## full outer 仅oracle支持

on a.key = b.key

MySQL七种JOIN类型小结

7. a ∪ b – a ∩ b

MySQL七种JOIN类型小结

?

1

2

3

4

5

select < select_list >

from tablea a

full outer join tableb b

on a.key = b.key

where a.key is null or b.key is null

MySQL七种JOIN类型小结

到此这篇关于mysql七种join类型详解的文章就介绍到这了,更多相关mysql join类型内容请搜索钦钦技术栈以前的文章或继续浏览下面的相关文章希望大家以后多多支持钦钦技术栈!

原文链接:https://blog.csdn.net/qq_51026595/article/details/120895365

版权声明:本文(即:原文链接:https://www.qin1qin.com/catagory/4596/)内容由互联网用户自发投稿贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 630367839@qq.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022-07-23 12:41:42
下一篇 2022-07-23 12:41:53

软件定制开发公司

相关阅读

发表回复

登录后才能评论
通知:禁止投稿所有关于虚拟货币,币圈类相关文章,发现立即永久封锁账户ID!