联接条件可在FROM或 WHERE子句中指定,建议在FROM子句中指定联接条件。WHERE和HAVING子句也可以包含搜索条件,以进一步筛选联接条件所选的行。
联接可分为以下几类:
内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符)。包括相等联接和自然联接。内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索students和courses表中学生标识号相同的所有行。
外联接。外联接可以是左向外联接、右向外联接或完整外部联接。在FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:
LEFT JOIN 或 LEFT OUTER JOIN。
左向外联接的结果集包括LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
RIGHT JOIN 或 RIGHT OUTER JOIN。
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
FULL JOIN 或 FULL OUTER JOIN。
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
交叉联接。
交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉联接也称作笛卡尔积。
例子:
a表:
id name
1 张三
2 李四
3 王五
b表:
id job parent_id
1 23 1
2 34 2
3 34 4
id同parent_id 存在关系
内连接
select a.*,b.* from a inner join b on a.id=b.parent_id
结果是:
1 张三 1 23 1
2 李四 2 34 2
外连接--左连接
select a.*,b.* from a left join b on a.id=b.parent_id
结果是:
1 张三 1 23 1
2 李四 2 34 2
3 王五 null null null
外连接--右连接
select a.*,b.* from a right join b on a.id=b.parent_id
结果是:
1 张三 1 23 1
2 李四 2 34 2
null null 3 34 4
外连接--完全连接
select a.*,b.* from a full join b on a.id=b.parent_id
结果是:
1 张三 1 23 1
2 李四 2 34 2
null null 3 34 4
3 王五 null null null
分享到:
相关推荐
SQL join 完全用法 SQL join 完全用法 学习sql join
在这个“SQL之JOIN用法完全版”中,我们将深入探讨JOIN的不同类型及其应用。 1. **INNER JOIN**: INNER JOIN返回两个表中匹配的行。这意味着只有当第一个表中的某行与第二个表中的某行在指定的列上具有相同的值时...
### SQL语句中JOIN的用法详解 在SQL查询语言中,`JOIN`是一个非常重要的概念,它允许我们从两个或多个表中提取数据。通过使用不同类型的JOIN操作,我们可以根据表之间的关系来灵活地组织数据。下面我们将详细介绍几...
SQL 中的左外连接、内连接、右外连接用法详解 SQL 中的连接操作是数据库管理系统中最基本的操作之一,它能够将多个表中的数据结合起来,生成一个新的结果集。本文将对 SQL 中的左外连接、内连接、右外连接进行详细...
本篇文章将深入探讨LEFT JOIN、RIGHT JOIN以及INNER JOIN的用法,并通过实例进行对比,帮助理解它们之间的差异。 1. LEFT JOIN(左连接) LEFT JOIN返回所有左表(在本例中为A表)的记录,即使在右表(B表)中没有...
在SQL查询中,JOIN操作是连接两个或多个表的关键部分,用于从这些表中提取相关数据。JOIN的主要目的是合并来自不同表的行,基于这些表之间的共同列或字段。在这个主题中,我们将深入探讨JOIN的不同类型,以及某些...
在PL/SQL中,全连接可以通过UNION操作结合左连接和右连接来实现,但请注意,这并不完全等同于直接使用FULL OUTER JOIN,因为顺序可能影响结果列的标题。 示例: ``` SELECT * FROM a Aa FULL OUTER JOIN b Bb ON...
MySQL JOIN是数据库操作中用于合并多个表的数据的关键技术,尤其在处理复杂的...总之,理解和掌握MySQL JOIN的完全用法,能够帮助我们编写出更高效、更准确的SQL查询,解决复杂的数据库查询问题,提升数据处理能力。
LINQ to SQL语句之Join和Order By部分代码 语句描述:这个例子在From子句中使用外键导航筛选在西雅图的雇员,同时列出其所在地区。这条生成SQL语句为: SELECT [t0].[FirstName], [t0].[LastName], [t2]....
SQL Join On 用法 SQL Join On 是一种常用的数据库连接方式,用于连接两个或多个表,通过指定的连接条件来筛选和组合数据。join on 语句的基本结构为: `SELECT * FROM table1 [LEFT/RIGHT/INNER] JOIN table2 ON ...
尽管每个系统可能略有不同,但JOIN的基本概念和用法在大多数SQL方言中是通用的。 综上所述,理解并熟练运用INNER JOIN和OUTER JOIN是提升SQL查询能力的关键步骤。在实际工作中,根据需求选择合适的JOIN类型,能帮助...
在本文中,我们将详细介绍SQL Left Join的使用方法、特点和区别,以及与Right Join和Inner Join的比较。 一、SQL Left Join的定义和使用 SQL Left Join也称为左外连接,它可以将左表中的所有记录与右表中的记录...
### SQL中JOIN的使用详解 在SQL查询语言中,`JOIN`操作是非常重要的一个部分,它主要用于合并两个或多个表中的数据。通过不同的`JOIN`类型,我们可以灵活地获取所需的组合数据。本文将详细介绍五种主要的`JOIN`类型...
非常详细的SQL--JOIN之完全用法 本篇文章将详细介绍 SQL 中的 JOIN 操作,包括 LEFT JOIN、RIGHT JOIN、FULL JOIN 等多种类型的外联接,及其在实际应用中的使用方法。 什么是 JOIN 操作? JOIN 操作是 SQL 中的一...
### SQL的INNER JOIN语法 #### 一、概念与作用 在SQL语言中,`INNER JOIN`是一种连接(Join)操作,用于从两个或多个表中提取数据,仅返回那些...在实际开发过程中,熟练掌握`INNER JOIN`的使用方法是非常必要的。
在SQL中,表连接(JOIN)是用于合并两个或多个表的数据的关键操作,它允许你在查询时基于共同的列从不同的表中检索信息。这里我们将深入探讨几种主要的JOIN类型,包括自然JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN...
### SQL中的Join类型详解 在数据库操作中,`JOIN`是一种非常重要的操作,它用于将两个或多个表中的行合并到一起,以便于查询和分析跨表的数据。根据不同的连接方式,`JOIN`可以分为几种类型,包括`INNER JOIN`、`...
SQL JOIN是数据库操作中的关键部分,用于合并来自两个或多...理解这些JOIN的原理和用法对于写出高效的SQL查询至关重要,尤其是在处理大数据集时。在编写SQL查询时,应该根据业务需求和数据结构来决定最合适的JOIN类型。
6. MySQL 没有提供 SQL 标准中的 FULL JOIN(全连接),可以使用 UNION 关键字来合并 LEFT JOIN 与 RIGHT JOIN,达到模拟 FULL JOIN 的目的。 7. CROSS JOIN 是一种特殊的 JOIN 类型,在不指定 ON 条件下,CROSS ...
在 FROM 子句中指定外联接时,可以由下列几组关键字中的一组指定: LEFT JOIN 或 LEFT OUTER JOIN。 左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果...