图解SQL中JOIN的各种用法

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

一、概要

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

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

二、JOIN分类

客官:小二,上JOIN分类!

……

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

 

 

 

三、JOIN分类详解

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

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

INNER JOIN:

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

 

 

  

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

LEFT OUTER JOIN:

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

 

 

  

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

LEFT OUTER JOIN - WHERE NULL:

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

 

 

 

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

RIGHT OUTER JOIN:

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

 

 

 

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

RIGHT OUTER JOIN – WHERE NULL:

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

 

 

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

FULL OUTER JOIN:

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

 

 

 

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

FULL OUTER JOIN – WHERE NULL:

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

 

 

 

  1. 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:

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

 

 

  1. SELECT * FROM Table1 t1 CROSS JOIN Table2 t2  

小二:小二已经介绍完毕,客官,请慢用。

责任编辑:庞桂玉 来源: Java知音
相关推荐

2019-03-18 15:00:48

SQLJoin用法数据库

2009-05-12 10:55:06

SQLFOR XML模式

2019-08-27 10:55:59

MySQLJOINSQLite

2010-04-01 13:09:12

Oracle中join

2011-12-01 10:55:34

2023-10-08 07:37:44

SQL连接

2010-09-09 15:51:22

sqlinner join语法

2010-09-09 15:43:13

SQLjoin语法

2010-09-17 09:35:51

SQL中if语句

2010-09-10 15:04:41

SQLDATENAME函数

2021-08-16 08:12:04

SQLMerge用法

2010-09-08 15:42:46

SQL指令UNION

2010-04-26 15:30:45

Oracle join

2010-04-02 15:22:02

Oracle join

2009-01-14 09:28:12

OracleSQL10g

2021-04-21 07:17:16

SQLServer数据库SQL

2010-07-13 16:48:14

SQL Server

2011-03-07 13:27:13

SQLCase

2020-07-06 07:37:58

Linux虚拟

2023-09-06 11:31:24

MERGE用法SQL
点赞
收藏

51CTO技术栈公众号