标准SQL中提供了四种JOIN方式:
1、INNER JOIN(就是我们通常的JOIN)
2、LEFT JOIN(在某些数据库中称为LEFT OUTER JOIN)
3、RIGHT JOIN(在某些数据库中称为RIGHT OUTER JOIN)
4、FULL JOIN(在某些数据库中称为FULL OUTER JOIN)
下面我们将以实际的应用来分析介绍这四种JOIN方式。
现在假设有两个表:Persons和Orders,表示顾客和他们的订单。现有数据分别如下:
Persons:
Orders:
1、INNER JOIN操作:当两个表中有匹配时,才返回数据行。
现在我们希望列出所有人的订购:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
返回的结果如下:
从图中可以看出,只把两个表中有匹配的数据行列出来了。
2、LEFT JOIN操作:会返回左边表中的所有行,即使右表中没有匹配项。
现在我们希望列出所有人以及他们的订购——如果他们有订购的话。这里就可以使用LEFT JOIN来完成:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
返回的结果如下:
从图中可以看出,这次查询结果列出了所有的人,并把它们相关的订单列出来了。
3、RIGHT JOIN操作:会返回右边表中的所有行,即使左表中没有匹配项。LEFT和RIGHTj 相对而言。下面的操作如果换一下位置,使用LEFT JOIN也可完成。
现在我们希望列出所有的订单以及订购他们的人——如果在Perons中存在订购它的人的话。这里假设id_P不只在Persons一个表中有。那么就可以使用RIGHT JOIN来完成:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
返回结果如下:
从图中可以看出,这次查询结果列出了所有的订单,并把其相应的人——如果在Persons中的话,也列了出来。
4、FULL JOIN操作:只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。它会列出参与JOIN操作的表中的所有数据行,不管他们之前是否匹配。
现在我们希望列出所有的人,以及他们的定单,以及所有的定单,以及定购它们的人,那么就可以使用FULL JOIN操作来完成:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
返回结果如下:
上面对SQL中的JOIN操作做了简单的介绍,希望对大家有所帮助。
参考资料:http://www.w3school.com.cn/sql/sql_join.asp
分享到:
相关推荐
SQL join 完全用法 SQL join 完全用法 学习sql join
SQL Join 语句详解 SQL Join 语句是数据库管理系统中最基本也是最重要的语句之一。它允许用户从多个表中检索数据,并将其组合成一个结果集。今天,我们将使用图形来解释 SQL Join 语句的各种类型。 INNER JOIN ...
sqljoin示例,包含左联右联内联以及外联等连接方式是学习SQL必不可少的知识
在PL/SQL(Oracle数据库的编程语言)中,JOIN语法尤其重要,因为它是处理复杂查询的基础。以下是PL/SQL中不同类型的JOIN及其特点的详细分析: 1. **左连接(LEFT JOIN)**: 左连接返回左表(Aa)的所有行,即使在...
手把手教你写 SQL Join 联接 手把手教你写 SQL Join 联接 - Defonds 的专栏 - CSDN博客手把手教你写 SQL Join 联接 - Defonds 的专栏 - CSDN博客
【数据库应用技术】中的SQL JOIN多表查询是数据库操作中常用的一种高级查询技巧,它能够有效地结合多个数据表,获取更复杂的数据信息。在数据库设计中,常常需要将多个相关表的数据整合在一起进行分析,而JOIN操作...
SQL Join类型除内join,其他join没匹配数据时数组字段输出为NULL。
SQL Join On 用法 SQL Join On 是一种常用的数据库连接方式,用于连接两个或多个表,通过指定的连接条件来筛选和组合数据。join on 语句的基本结构为: `SELECT * FROM table1 [LEFT/RIGHT/INNER] JOIN table2 ON ...
在SQL(结构化查询语言)中,JOIN操作是用于合并两个或多个表的数据,以便根据它们之间的关联性创建新的结果集。JOIN关键字是SQL查询中的关键部分,它允许我们在不同的表之间建立联系,以获取更丰富的信息。在这个...
LINQ to SQL语句之Join和Order By部分代码 语句描述:这个例子在From子句中使用外键导航筛选在西雅图的雇员,同时列出其所在地区。这条生成SQL语句为: SELECT [t0].[FirstName], [t0].[LastName], [t2]....
在SQL中,表连接(JOIN)是用于合并两个或多个表的数据的关键操作,它允许你在查询时基于共同的列从不同的表中检索信息。这里我们将深入探讨几种主要的JOIN类型,包括自然JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN...
SQL 连接 JOIN 例解
SQL Inner Join SQL Left Join SQL Right Join SQL Full Join SQL Union SQL Select Into SQL Create DB SQL Create Table SQL Constraints SQL Not Null SQL Unique SQL Primary Key SQL Foreign Key ...
### SQL语句中JOIN的用法详解 在SQL查询语言中,`JOIN`是一个非常重要的概念,它允许我们从两个或多个表中提取数据。通过使用不同类型的JOIN操作,我们可以根据表之间的关系来灵活地组织数据。下面我们将详细介绍几...
SQL JOIN 连接 SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。 最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN)。 SQL INNER JOIN 从多个表中返回满足 JOIN 条件的所有行。 让...
MySQL join summary graph and code.I just wanna submit a .jpg,
### SQL语句JOIN中ON和WHERE的区别 #### 引言 在SQL中,JOIN操作用于合并两个或多个表中的行。正确理解`ON`和`WHERE`子句的区别对于高效地编写查询至关重要。本文将详细解释这两者的不同,并通过具体的例子来加深...
在面试的时候曾3次踩过了sql join的坑,第一次是校招面试的时候,面的是国内某大行的开发岗,被问到会不会使用sql join,当时直接回答的是不会,只会使用简单的sql操作。第二次面试的是另一大行的测试岗,人家直接问...
在SQL查询中,JOIN操作是连接两个或多个表的关键部分,用于从这些表中提取相关数据。本篇文章将深入探讨LEFT JOIN、RIGHT JOIN以及INNER JOIN的用法,并通过实例进行对比,帮助理解它们之间的差异。 1. LEFT JOIN...