Sql之表的连接总结
1、交叉连接(就是将两张表的数据 交叉组合在一起)
有两张表 客户表:[Sales.Customers] 和订单表:[Sales.Orders]。
业务需求:实现 Customer中custid(客户Id) 和 Orders表中的 Orderid的 交叉连接
select
c.custid,o.orderid
from [Sales.Customers] as c cross join [Sales.Orders] as o
实现效果:

2、内连接(使用最多的):inner join
业务要求:查询出:Order对应的 Customer中的所有客户的所有订单
select c.custid,o.orderid
from [Sales.Customers] as c inner join [Sales.Orders] as o
on c.custid=o.custid
注意:所有的查询结果都是全部符合 on 后面的 条件,这是和 outer join 正好相反的
3、外连接 (outer join)
和内连接最显著的 不同:就是将不满足条件的数据页查询出来了
注意一点:外连接是要分左外连接和右外连接的,左外连接意思就是outer join左边的表含有超出 on条件的内容
select
c.custid,o.orderid
from [Sales.Customers] as c left outer join [Sales.Orders] as o
on c.custid= o.custid
查看查询结果可以看出:

含有两个 orderid 为NULL的结果,就是多出来的 查询结果
通过上面的使用右外连接的使用方法 只不过要将上面的两张表的顺序 变一下
3、对外连接使用的实例,并对组函数里面NULL值的处理讲解
注意:对于组函数(例如:sum()、max()等),对于Null值是不做处理的,不算在内的
select
c.custid,o.orderid,
count(o.orderid) over (partition by c.custid)
from [Sales.Customers] as c left outer join [Sales.Orders] as o
on c.custid= o.custid
查看结果:

我们可以看到,最后两项求和的值为0.这是因为求和是根据 orderid进行分组的(这里关于分组是通过开窗函数over,后面我会讲解的),组函数COUNT()对NULL是不做处理的,所以为0.
Sql之表的连接总结的更多相关文章
- SQl 语句 表的连接
当涉及到多个表查询时就需要使用将表连接的方法进行查询. SQL语句连接的方式根本上分为5种: •EQUI JOIN •SEMI JOIN 3 •ANTI JOIN 4 •CROSS JOIN •DIV ...
- SQL的表的连接Left Join / Right Join /inner join相关
Left Join / Right Join /inner join相关关于左连接和右连接总结性的一句话:左连接where只影向右表,右连接where只影响左表.Left Joinselect * f ...
- ylb:多表的连接与练习(第三方关联表的应用)
ylbtech-SQL Server:SQL Server-多表的连接与练习(第三方关联表的应用) SQL Server 多表的连接与练习(第三方关联表的应用). 1,多表的连接与练习(第三方关联表的 ...
- SQL多表连接查询
SQL多表连接查询 本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:student 截图如下: 表2:course 截图如下: (此时这样建表只是为了演示连接SQL语句,当然实际 ...
- sql server 表连接
本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:student 截图如下: SQL多表连接查询(详细实例)_新客网 表2:course 截图如下: SQL多表连接查询(详细实例)_新 ...
- SQL多表连接查询以及mysql数据库、sqlserver数据库常见不同点
mysql数据库表及数据准备语句: USE test; DROP TABLE IF EXISTS `teacher_table`; DROP TABLE IF EXISTS `student_tabl ...
- 小谈SQL表的连接
简述SQL连接 SQL连接呢,主要分为以下几种内连接,左连接,右连接,全连接(当然还有很多官方的说法,这里就讲讲最常用的). 既然都叫连接了,那至少要有两个对象,也就是说,至少要有两个表,要怎么样的表 ...
- 一个典型的多表参与连接的复杂SQL调优(SQL TUNING)引发的思考
今天在看崔华老师所著SQL优化一书时,看到他解决SQL性能问题的一个案例,崔华老师成功定位问题并进行了解决.这里,在崔华老师分析定位的基础上,做进一步分析和推理,以便大家一起研究探讨,下面简述该案例场 ...
- sql优化 表连接join方式
sql优化核心 是数据库中 解析器+优化器的工作,我觉得主要有以下几个大方面:1>扫表的方法(索引非索引.主键非主键.书签查.索引下推)2>关联表的方法(三种),关键是内存如何利用 ...
随机推荐
- [未完成]plugin.xml文件
此文章部分转自:http://fxzcollege6.iteye.com/blog/2013055 关于plugin.xml文件我还总结过一篇文章:http://www.cnblogs.com/Dre ...
- MSP430常见问题之FLASH存储类
Q1:用IAR Embedded Workbench for MSP430 通过JTAG往MSP430上写程序.为了知道片内程序的版本,必须读出Flash 中内容.什么工具软件可以通过JTAG口实现这 ...
- hdu 2665 划分树
思路:裸的划分树 #include<iostream> #include<algorithm> #include<cstring> #include<cstd ...
- saltstack实战3--配置管理之pillar
数据系统-Pillar pillar和grains类似,但是它能给minion指定它想要的数据,安全性较好,另外它是在master端设置的 应用场景: grains的特性–每次启动汇报.静态决定了 ...
- Laravel 中查询 where 记录
Laravel 的 Eloquent 使用 Between $query->whereBetween('age',[$from,$to]) 这是生成 And between ... and .. ...
- Android Studio 快捷方式
Alt+回车 导入包,自动修正 Ctrl+N 查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L 格式化代码 Ctrl+Alt+O 优化导入的类和包 Alt+Insert 生成代码(如g ...
- ansible安装(批量执行命令
rpm安装 下载epl源 : Download the latest epel-release rpm from:http://dl.fedoraproject.org/pub/epel/6/x86 ...
- SQL 的一个技巧
遇到一个需求,项目是我接手二次开发的,之前的大神设计数据库,订单表中没有订单号,现在让我加上这个号,规则是订单创建日期加上自增的ID,ID需要补足5位,例:00002,00124,01245这样.这个 ...
- 用angular实时获取本地localStorage数据,实现一个模拟后台数据登入的效果
研究了一上午,终于做出了,实时获取本地localStorage来模拟注册登入~~~ <!DOCTYPE html><html><head lang="en&qu ...
- 插件笔记——dataTables使用说明
jquery DataTables中文使用说明 出处:http://blog.vunso.com/201405/jquery-datatables%E4%B8%AD%E6%96%87%E4%BD%BF ...