sql server几种Join的区别测试方法
作者:njshiney 时间:2024-01-13 14:54:18
主要来介绍下Inner Join , Full Out Join , Cross Join , Left Join , Right Join的区别。
Inner Join:筛选两边都有的记录
Full Out Join:两边都筛选出来,匹配能匹配的,不能匹配的用NULL列出
Cross Join:列出两边所有组合,也称为笛卡尔集 A×B
Left Join:以左边的表为主表,列出主表所有记录,匹配能匹配的,不能匹配的用 NULL列出
Right Join:以右边的表为主表,列出主表所有记录,匹配能匹配的,不匹配的用NULL列出
下面来看代码:
创建测试表:
CREATETABLE CONSUMERS
(
CONSUMER_ID INTNOTNULL,
CONSUMER_NAME VARCHAR(10) NOTNULL
)
CREATETABLE ORDERS
(
CONSUMER_ID INTNOTNULL,
ORDER_ID VARCHAR(10) NOTNULL)
编测试数据
INSERT CONSUMERS VALUES ( 1, 'AA')
INSERT CONSUMERS values ( 2, 'BB')
INSERT CONSUMERS values ( 3, 'CC')
INSERT ORDERS VALUES ( 2, 'O100001')
INSERT ORDERS VALUES ( 3, 'O100002')
INSERT ORDERS VALUES ( 3, 'O100003')
INSERT ORDERS VALUES ( 4, 'O100004')
测试
--Inner Join
--筛选两边都有的记录
SELECT *
FROM ORDERS o INNER JOIN CONSUMERS c
ON o.CONSUMER_ID = c.CONSUMER_ID
--Full Out Join
--两边都筛选出来,匹配能匹配的,不能匹配的用NULL列出
SELECT *
FROM ORDERS o FULL OUTER JOIN CONSUMERS c
ON o.CONSUMER_ID = c.CONSUMER_ID
--Cross Join
--列出两边所有组合,即笛卡尔集A×B
SELECT *
FROM ORDERS o CROSS JOIN CONSUMERS c
--Left Join
--以左边的表为主表,列出主表所有记录,匹配能匹配的,不能匹配的用NULL列出
SELECT *
FROM CONSUMERS c left join ORDERS o
on c .CONSUMER_ID = o .CONSUMER_ID
--Right Join
--以右边的表为主表,列出主表所有记录,匹配能匹配的,不能匹配的用NULL列出
SELECT *
FROM CONSUMERS c RIGHT JOIN ORDERS o
on c .CONSUMER_ID = o .CONSUMER_ID
ok了,具体的大家可以参考脚本之家以前发布的文章。
来源:http://blog.csdn.net/shiney927/article/details/51866526
标签:sql,server,Join
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python基于checksum计算文件是否相同的方法
2022-11-08 20:30:48
MySQL中B树索引和B+树索引的区别详解
2024-01-19 12:07:57
![](https://img.aspxhome.com/file/2023/9/126299_0s.jpg)
vue引入jq插件的实例讲解
2024-04-30 10:23:11
![](https://img.aspxhome.com/file/2023/7/130247_0s.jpg)
Django的基本运用之Django垃圾分类详解
2022-02-02 01:46:13
![](https://img.aspxhome.com/file/2023/3/120903_0s.png)
js实现QQ邮箱邮件拖拽删除功能
2023-09-07 04:31:05
我对SQL SERVER 存储过程见解
2009-10-31 18:51:00
MYSQL教程:查询优化之有效加载数据
2009-02-27 15:45:00
uniapp封装小程序雷达图组件的完整代码
2024-04-17 09:55:26
![](https://img.aspxhome.com/file/2023/4/136464_0s.png)
Python爬虫破解登陆哔哩哔哩的方法
2021-03-28 14:17:40
简单介绍Python中的RSS处理
2023-03-03 13:59:17
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
2023-10-21 05:36:58
Python中print()函数的用法详情
2021-01-11 21:35:17
![](https://img.aspxhome.com/file/2023/4/101724_0s.png)
Python使用爬虫爬取静态网页图片的方法详解
2021-02-18 20:07:58
![](https://img.aspxhome.com/file/2023/6/125186_0s.png)
简单的Python2.7编程初学经验总结
2021-03-18 01:27:11
![](https://img.aspxhome.com/file/2023/1/124901_0s.jpg)
分享4个Python中高效省时的技巧
2021-02-14 22:32:09
![](https://img.aspxhome.com/file/2023/4/131314_0s.png)
对python调用RPC接口的实例详解
2022-12-30 00:09:20
解决Mysql报Invalid default value for ''operate_time''错误的问题
2024-01-14 08:42:16
Scrapy模拟登录赶集网的实现代码
2023-02-22 20:33:47
![](https://img.aspxhome.com/file/2023/4/69474_0s.png)
Node.js中的events事件模块知识点总结
2024-05-08 10:11:37
python实现百万答题自动百度搜索答案
2021-10-06 03:57:11
![](https://img.aspxhome.com/file/2023/8/93558_0s.jpg)