1.理论
只要两个表的公共字段有匹配值,就将这两个表中的记录组合起来。
个人理解:以一个共同的字段求两个表中符合要求的交集,并将每个表符合要求的记录以共同的字段为牵引合并起来。
语法
FROM table1 INNER JOIN table2 ON table1 . field1 compopr table2 . field2
INNER JOIN 操作包含以下部分:
部分 |
说明
|
table1, table2 |
要组合其中的记录的表的名称。 |
field1,field2 |
要联接的字段的名称。如果它们不是数字,则这些字段的数据类型必须相同,并且包含同类数据,但是,它们不必具有相同的名称。 |
compopr
|
任何关系比较运算符:“=”、“<”、“>”、“<=”、“>=”或者“<>”。 |
说明
可以在任何 FROM 子句中使用 INNER JOIN 操作。这是最常用的联接类型。只要两个表的公共字段上存在相匹配的值,Inner 联接就会组合这些表中的记录。
可以将 INNER JOIN 用于 Departments 及 Employees 表,以选择出每个部门的所有雇员。而要选择所有部分(即使某些部门中并没有被分配雇员)或者所有雇员(即使某些雇员没有分配到任何部门),则可以通过 LEFT JOIN 或者 RIGHT JOIN 操作来创建外部联接。
如果试图联接包含备注或 OLE 对象数据的字段,将发生错误。
可以联接任何两个相似类型的数字字段。例如,可以联接自动编号和长整型字段,因为它们均是相似类型。然而,不能联接单精度型和双精度型类型字段。
下例展示了如何通过 CategoryID 字段联接 Categories 和 Products 表:
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products
ON Categories.CategoryID = Products.CategoryID;
在前面的示例中,CategoryID 是被联接字段,但是它不包含在查询输出中,因为它不包含在 SELECT 语句中。若要包含被联接字段,请在 SELECT 语句中包含该字段名,在本例中是指 Categories.CategoryID。
也可以在 JOIN 语句中链接多个 ON 子句,请使用如下语法:
SELECT fields
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field1 AND
ON table1.field2 compopr table2.field2) OR
ON table1.field3 compopr table2.field3)];
也可以通过如下语法嵌套 JOIN 语句:
SELECT fields
FROM table1 INNER JOIN
(table2 INNER JOIN [( ]table3
[INNER JOIN [( ]tablex [INNER JOIN ...)]
ON table3.field3 compopr tablex.fieldx)]
ON table2.field2 compopr table3.field3)
ON table1.field1 compopr table2.field2;
LEFT JOIN 或 RIGHT JOIN 可以嵌套在 INNER JOIN 之中,但是 INNER JOIN 不能嵌套于 LEFT JOIN 或 RIGHT JOIN 之中。
2.操作实例
表A记录如下:
aID aNum
1 a20050111
2 a20050112
3 a20050113
4 a20050114
5 a20050115
表B记录如下:
bID bName
1 2006032401
2 2006032402
3 2006032403
4 2006032404
8 2006032408
实验如下:
1.left join
sql语句如下:
select * from A
left join B
on A.aID = B.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
5 a20050115 NULL NULL
(所影响的行数为 5 行)
结果说明:
left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).
B表记录不足的地方均为NULL.
2.right join
sql语句如下:
select * from A
right join B
on A.aID = B.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
NULL NULL 8 2006032408
(所影响的行数为 5 行)
结果说明:
仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.
3.inner join
sql语句如下:
select * from A
innerjoin B
on A.aID = B.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
结果说明:
很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.
分享到:
相关推荐
这个工具通常是开发人员和DBA(数据库管理员)在软件项目实施过程中不可或缺的一部分,因为它可以帮助他们快速检测和解决SQL连接问题。 在C#和ASP.NET编程环境中,SQL连接测试器通常是一个基于.NET Framework的应用...
SQL连接器是数据库管理系统与应用程序之间的重要桥梁,它允许程序通过特定的接口与各种数据库进行交互,从而实现数据的查询、插入、更新和删除等操作。在本文中,我们将深入探讨SQL连接器的工作原理、常见类型以及...
SQL Server连接工具是数据库管理员和开发人员用于与Microsoft SQL Server交互的重要软件。这些工具提供了多种功能,包括数据库的创建、管理、查询、备份、恢复以及性能优化等。在本篇文章中,我们将深入探讨SQL ...
而"简单的SQL连接客户端"则是一个专为用户设计的轻量级应用,旨在帮助用户方便地连接到SQL Server数据库进行相关操作。下面将详细介绍SQL连接客户端的相关知识点。 首先,SQL连接客户端是数据库管理员、开发人员和...
本文将深入探讨如何连接SQL数据库,同时也会提及Access作为参考。 一、SQL数据库连接基础 SQL数据库连接涉及几个关键要素:数据库服务器、数据库名、用户名、密码以及连接驱动。以下是一般的连接步骤: 1. **选择...
解决oracle sqldeveloper无法连接mysql、SQLServer问题,sqlDeveloper是ORACLE数据库开发工具,自带的是无法连接MS SQL Server以及mysql的,想连接的话需要第三方工具。 使用方法: 解压出来后将2个jar放入jlib...
SQLTools sql连接工具SQLTools sql连接工具SQLTools sql连接工具
然而,在多用户环境中,特别是在高并发访问的系统中,可能会出现一些问题,比如“SQL连接清除”所针对的问题。本文将详细讨论SQL连接、连接管理以及为何需要“SQL连接清除工具”。 SQL连接指的是一个客户端应用程序...
MCGS通网版与SQL连接 MCGS通网版与SQL连接是指在通网版MCGS中保存的数据如何保存到SQL数据库中,以便更好地管理和分析数据。在这个过程中,需要在不同的组态软件中进行连接设置。下面将详细介绍如何在通网版MCGS...
首先,连接Oracle数据库通常需要Oracle客户端软件,但这里提到的“Sqldbx连接oracle,不用安装client”,意味着SqlDbx可能通过一种无需完整Oracle客户端的方式来实现连接。这种连接方式通常依赖于Oracle的Instant ...
### SQL Server 2005 Express与速达的连接问题详解 #### 一、问题背景 在使用SQL Server 2005 Express时,如果遇到速达软件无法连接到数据库的情况,这通常是由多种因素导致的。根据描述,这里主要讨论的是安装了随...
云风SQL连接器是一款小巧而强大的工具,专为开发者设计,便于快速、高效地与SQL服务器建立连接。这款连接器以其简洁的界面和强大的功能,为数据库管理提供了极大的便利。在本文中,我们将深入探讨这款连接器的核心...
查看 SQL Server 数据库连接数的多种方法 SQL Server 数据库连接数是一个重要的性能指标,它可以帮助数据库管理员了解当前数据库的工作负载和性能。查看数据库连接数有多种方法,本文将介绍四种不同的方法来查看 ...
sql连接myeclipse与sql的连接
一直在用的这个工具和大家分享一下,简单易的数据库连接测试工具,主要用来测试是否能连接数据库,不过也可以编码数据库和执行SQL代码,工具虽说,但功能强大。 已测试过 sql server 2000,sql2005,sql2008,mysql, ...
### Intouch与SQL连接方法详解 #### 一、引言 在北京汉锦电子自动化系统有限公司的文档中,王明明详细介绍了Intouch与SQL Server数据库之间的连接方法。这是一篇非常实用的技术指南,对于那些需要在Intouch环境中...
`sqljdbc4`是微软公司提供的Java数据库连接(JDBC)驱动程序,它允许Java应用程序通过Java编程语言与Microsoft SQL Server进行通信。这个驱动包是专门为那些使用Java平台标准版(Java SE)7或更高版本的开发者设计的...
### SQL Server连接字符串详解 在IT领域中,数据库的连接是进行数据操作的基础步骤之一。本文将基于“SQL Server连接字符串大全”的主题,详细介绍不同版本的SQL Server(如2000、2005等)及其不同环境下的连接字符...
标题中的“HeidiSql客户端”指的是HeidiSQL,这是一个轻量级且用户友好的数据库管理工具,主要用于连接MySQL、MariaDB、SQL Server、PostgreSQL和Oracle等不同类型的数据库系统。这款软件以其简单易用的界面和高效的...
"SQL server 连接测试工具"就是为了满足这一需求而设计的,它帮助用户验证与SQL Server实例的连接,并在连接成功后将相关信息写入配置文件,简化了数据库管理的工作流程。 1. **连接测试**:连接测试工具的主要功能...