sql join的5种连接方式
2016-04-20 14:51
316 查看
首先介绍一下,join有5中连接方式:1.内连接(inner
join...on...)2.全外连接(full join ....on ... )3.左连接(left join ...on...)4.右连接(right join ...on ...)5.交叉连接(cross
join ...on ...)
1.内连接(inner
join...on...)
select * from
table1 a inner join table2 b on a.id=b.id 通过id将table1和table2 连接起来产生一个新表,新表是由这两个表的公共部分组成;如下图:
2.左外连接(left
join ....on ... )
select
* from table1 a left join table2 b on a.id=b.id 是以左表(table1)为基准,查询结果中包含左表全部数据,右表匹配数据不存在时用null代替;如下图:
3.右外连接(right
join ... on...)
select
* from table1 a right join table2 b on a.id=b.id 跟左外连接相对应,是以右表(table2)为基准,查询结果中包含右表全部数据,左表数据匹配不存在时用null代替;如下图:
4.全外连接(full join ...on...)
select
* from table1 a full join table2 b on a.id=b.id 全外连接其实是左连接和右连接的一个合集,也就是说他会查询出左表和右表的全部数据,匹配不上的会显示为null;如下图:
5.交叉连接(cross
join...)
select * from table1 a crossjoin
table2 b ;
也可以写为 select * from table1,table2;
交叉连接,也称为笛卡尔积,查询返回结果的行数等于两个表行数的乘积
以上是我对5种join连接方式的理解,欢迎大家借鉴补充!
join...on...)2.全外连接(full join ....on ... )3.左连接(left join ...on...)4.右连接(right join ...on ...)5.交叉连接(cross
join ...on ...)
1.内连接(inner
join...on...)
select * from
table1 a inner join table2 b on a.id=b.id 通过id将table1和table2 连接起来产生一个新表,新表是由这两个表的公共部分组成;如下图:
2.左外连接(left
join ....on ... )
select
* from table1 a left join table2 b on a.id=b.id 是以左表(table1)为基准,查询结果中包含左表全部数据,右表匹配数据不存在时用null代替;如下图:
3.右外连接(right
join ... on...)
select
* from table1 a right join table2 b on a.id=b.id 跟左外连接相对应,是以右表(table2)为基准,查询结果中包含右表全部数据,左表数据匹配不存在时用null代替;如下图:
4.全外连接(full join ...on...)
select
* from table1 a full join table2 b on a.id=b.id 全外连接其实是左连接和右连接的一个合集,也就是说他会查询出左表和右表的全部数据,匹配不上的会显示为null;如下图:
5.交叉连接(cross
join...)
select * from table1 a crossjoin
table2 b ;
也可以写为 select * from table1,table2;
交叉连接,也称为笛卡尔积,查询返回结果的行数等于两个表行数的乘积
以上是我对5种join连接方式的理解,欢迎大家借鉴补充!
相关文章推荐
- redis-cli 命令总结
- jsp-MySQL连接池
- host ... is not allowed to connect to this MySql server 开放mysql远程连接
- Oracle数据库使用入门
- MySQL 读写分离介绍及搭建
- MySQL 读写分离介绍及搭建
- NoSQL-Redis【1】-控制台配置密码
- 快速实现MySQL的部署以及一机多实例部署
- memcache基本使用
- postgreSQL数据库limit分页、排序
- oracle安装
- 关于mysql 和oracle 的常用字符串操作
- oracle中的常用系统相关命令及系统表
- 查询分析mysqldumpslow
- 安卓开发培训(3.3 SQLite的使用方法)
- MySQL的root密码忘记怎么办 修改root密码的方式
- mysql表大小写问题
- mysql 数据库备份
- mysql 存储过程
- 如何下载DB2的license ?