博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[数据库基础]——图解JOIN
阅读量:4921 次
发布时间:2019-06-11

本文共 1339 字,大约阅读时间需要 4 分钟。

 

 

 

阅读导航

一、概要

JOIN对于接触过数据库的人,这个词都不陌生,而且很多人很清楚各种JOIN,还有很多人对这个理解也不是很透彻,这次就说说JOIN操作。

图片是很容易被接受和理解,所以尝试使用图片来说明一下。

二、JOIN分类

客官:小二,上JOIN分类!

……

小二:客官,新鲜出炉的JOIN分类图片来喽。

三、JOIN分类详解

客官:小二,速速详细道来!

小二:现在让小二来给您详细介绍。

INNER JOIN

仅仅返回两个表中,匹配列相同的列值,所在行的数据。

SELECT * FROM Table1 t1 INNER JOIN Table2 t2 ON t1.Col1 = t2.Col1

 

LEFT OUTER JOIN

左外连接:返回左表的所有数据,并且在右表中不能匹配的列值,其坐在行则使用空值。

SELECT * FROM Tables1 t1 LEFT OUTER JOIN Table2 t2 on t1.Col1 = t2.Col2

 

LEFT OUTER JOIN - WHERE NULL

返回和右表不匹配的所有数据行

SELECT * FROM Table1 t1 LEFT OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1 WHERE t2.Col1 IS NULL

 

RIGHT OUTER JOIN

右外连接:返回右表的所有数据,并且在左表中不能匹配的列值,其所做在行则使用空值。

SELECT * FROM Tables1 t1 RIGHT OUTER JOIN Table2 t2 on t1.Col1 = t2.Col2

 

 

RIGHT OUTER JOIN – WHERE NULL

返回和左表不匹配的所有数据行

SELECT * FROM Table1 t1 RIGHT OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1 WHERE t1.Col1 IS NULL

 

 

FULL OUTER JOIN

完全连接可看作是左外连接和右外连接结果之和,返回两个表的所有数据,如果匹配列的值在两个表中匹配,那么返回数据行,否则返回空值。

SELECT * FROM Table1 t1 FULL OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1

 

FULL OUTER JOIN – WHERE NULL

返回内连接以外的数据行,即匹配列坐在行以外的所有数据。

SELECT * FROM Table1 t1 FULL OUTER JOIN Table2 t2 ON t1.ID = t2.ID WHERE t1.ID IS NULL OR t2.ID IS NULL

 

CROSS JOIN:

交叉连接不需要任何连接条件。这个会把两个表的的数据进行笛卡尔积操作。

SELECT * FROM Table1 t1 CROSS JOIN Table2 t2

 

小二:小二已经介绍完毕,客官,请慢用。准备洗漱睡觉了。

谢谢和指出错误语句。

转载于:https://www.cnblogs.com/BoyceYang/p/3145279.html

你可能感兴趣的文章
开发人员行走Unix的随身四艺
查看>>
织梦联动类型地区联动三级修复以及省份-市级-地区分开+高亮
查看>>
阿里技术嘉年华官网上线啦!
查看>>
获取Android状态栏的高度
查看>>
21. 比较三个整数大小
查看>>
ESXi主机和NTP server快速进行时间同步
查看>>
Python使用random.shuffle()打乱列表顺序
查看>>
(二)
查看>>
浏览器内核引擎
查看>>
SqlServer中怎么删除重复的记录(表中没有id)
查看>>
操作系统基础知识之————单线程(Thread)与多线程的区别
查看>>
PAT 1022 Digital Library[map使用]
查看>>
由于目标计算机积极拒绝,无法连接。
查看>>
hive常用命令
查看>>
Nmap使用教程 - 一
查看>>
java深入解析
查看>>
js返回上一页并刷新的几种方法
查看>>
POJ 3320 Jessica's Reading Problem 尺取法
查看>>
Unity Json 之三
查看>>
linux java -jar startup.sh
查看>>