sql语句中join用法大全
来源:互联网 发布:mac全屏游戏怎么切换 编辑:程序博客网 时间:2024/06/08 09:41
首先列出各种连接及其区别,后面给出每种连接的sql语句和查询结果:
1. inner join
内连接:只有两个表相匹配的行才能在结果集中出现。
2、outer join
(1)left join:左外连接:左表的表不加限制
(2)right-join:右外连接:右表的表不加限制
(3)full-join:全外连接:左右两边的表都不加限制
下面的具体的例子:
数据表结构如下所示:
department表:
编号 名称
1 财务
2 销售
3 客服
employee表:
编号 姓名 所属部门编号
1 张三 1
2 李四 1
3 王五 3
4 赵六 3
5 李八 4
下给出每种连接的sql语句,和最终结果:
1、内连接:
sql语句:select department.* from department inner join employee on department.编号=employee.所属部门编号;
结果: (明显,employee表中没有销售,所以2 销售这行和5 李八 4这行压根不会输出)
2、外连接中的左连接:
sql语句:
select d.*,isnull(e.num,0) from department d
left join
(
select 所属部门编号,count(*) num from employee group by 所属部门编号)e on e.所属部门编号=d.编号;
结果:(2 销售 这一行仍然显示但是4 所属部门编号不显示)
3、外连接中的右连接:
sql语句:
select d.*,e.所属部门编号,isnull(e.num,0)num from department d
right join
(
select 所属部门编号,count(*) num from employee group by 所属部门编号)e on e.所属部门编号=d.编号;
结果:(所属部门编号为4的这一行仍然显示,但是2 销售不显示)
4、外连接中的全外连接:
sql语句:
select d.*,e.所属部门编号,isnull(e.num,0)num from department d
full join
(
select 所属部门编号,count(*) num from employee group by 所属部门编号)e on e.所属部门编号=d.编号;
结果:(2 销售和所属部门编号为4的两行数据全部显示)
- sql语句中join用法大全
- SQL语句中Left join,right join,inner join用法
- SQL语句中Left join,right join,inner join用法
- SQL语句中JOIN的用法
- 小议SQL语句中JOIN的用法
- SQL语句中JOIN的用法
- SQL语句中JOIN的用法
- [转]SQL语句中JOIN的用法
- SQL语句中JOIN的用法
- SQL语句中JOIN的用法
- sql语句的join用法
- sql语句的join用法
- SQL语句用法大全
- sql中join语句区别
- sql语句的联合查询(join 用法)
- sql语句的联合查询(join 用法)
- SQL语句多表inner join用法
- SQL中join的用法
- 3.3工厂方法模式
- android Application Component研究之Activity(二)
- ArcGis Server的集中地图服务WMS/WFS/WCS介绍
- jsp,action使用cookie实现记住登陆用户名
- 找不到 mysql.sock 的处理方法!
- sql语句中join用法大全
- jQuery实现AJAX定时局部页面刷新
- [转]如何为 iPad 打造速度超快的 HTML5 软件
- SQLite 获取当前时间
- nyoj 104 最大和
- framebuffer显示原理、图像RGB数据处理
- 简易图片浏览器!
- 高端MCU战火烧到M4:X86仍猛攻,ARM不懈怠
- Discuz和jQuery冲突的解决办法