SQL Join 示例

17 Mar 2025 | 6 分钟阅读

SQL JOIN

用户可以实现 SQL Join 来合并来自两个或多个表的数据。在关系数据库管理系统中,所有数据都是相互关联的。数据可能存储在不同的表中,但以某种方式相关。表中的不同字段由具有关系值的实体组成。数据甚至可以分散到数据库中的多个表中。

如果用户需要同时从多个表中收集数据,那么用户可以实现一个简单的 Join 子句来执行数据检索。Join 子句将合并来自不同表的字段,这些字段将基于每个表中共同的数据值进行关联。

Join 子句可以根据 Join 谓词来实现。谓词在 WHERE 子句中指定。谓词可以被视为表在合并数据值之前必须满足的条件。

例如,在对不同表相同列中的值执行相等性测试时。这些值可能存在于名称不同的字段中。这也将被视为 Join 谓词。用户可以在 Join 谓词中实现不同的运算符。它包括 BETWEEN、LIKE、NOT 和比较运算符,如 <、>、<>、<=、>=、!=。

SQL 支持不同类型的 Join。Join 的类型可以根据数据在表之间的合并方式进行划分。Join 的类型如下:

内连接 (Inner Join): 内连接返回两个或多个表中字段的数据值的交集。它首先比较第一个表中字段的数据值与第二个表中存在的数据值。然后它配对行,并检查这两行是否满足 Join 谓词中指定的条件。它合并记录。它也被称为默认 Join。

外连接 (Outer Join): 它是内连接的对立面。它返回所有记录,即使一个表中的记录在另一个表中没有对应项。外连接可以进一步分为三个子类别。这些类别如下:

  • 全连接 (Full Join)
  • 左连接 (Left Join)
  • 右连接 (Right Join)

SQL 中 Join 的语法

在两个表中实现 Join 子句的语法如下:

例如,

考虑用户在本地数据库中有两个表的情况。数据库包含学生和课程的记录。不同的学生被分配了不同的课程。第一个表是 Students 表,其中包含学院所有学生的个人详细信息。它包含 S_ID、S_Name、S_Age、S_City 字段。

S_IDS_NameS_AgeS_City
01阿曼18德里
02Harsh22Ghaziabad
03拉格哈夫21Noida
04Abhay22斋浦尔
05Manav19古尔冈
06Rita18德里

实现以下 SQL 查询以在数据库中创建上述表。

为了确保上述表已成功插入数据库,请通过实现以下查询来查看表。

第二个表包含与课程相关的信息。Course 表中的字段是 C_ID、C_Name、SE_ID 和 CT_Name。

C_IDC_NameSE_IDCT_Name
110数学02拉曼 (Raman)
112电脑01Utkarsh
115英文03Vaibhav
121心理学05Rita

实现以下 SQL 命令来创建 Courses 表。

实现以下 SQL 查询来查看 Courses 表。

为了合并 Student 和 Course 表的数据,我们将使用 Join 关键字和 SELECT 子句在两个表上实现必要的 Join 操作。Join 这些表的查询如下:

实现上述 SQL 查询后,您将得到以下结果:

输出

SQL Join Example

上述结果与用户通过检索 Students 和 Courses 表中的所有字段所能检索到的结果相似。JOIN 关键字已将两个表的记录合并到一个表格表示中。

用户可以通过实现 SELECT 查询来检索相同的信息,从而实现相同的操作。

输出

SQL Join Example

Join 的类型及其示例

用户可以实现两种主要的 Join 类型。这两种类型是:

  • Inner Join
  • Outer Join

内连接 (Inner Join) 示例

Inner Join

一种常见的 Join 类型,它使用户能够基于标准列合并两个表。这意味着第一个表中的所有列都与第二个表中的所有列进行比较。它合并满足条件的所有列。

让我们考虑一个 Customers 表,其中包含 CustomerID、CustomerName 和 City。

CustomerID客户名称城市
1Aman SinghNoida
2Harsh GuptaGhaziabad
3Vaibhav Nagpal斋浦尔
4Harshit Sharma德里
5Rita VermaNoida

现在创建第二个表,Orders 表,它将存储 OrderID、CustomerID、Product 和订购产品的数量。该表如下所示:

订单 IDCustomerID产品数量
11电话2
22笔记本电脑1
31平板电脑3
44耳机1
53SmartWatch2

实现以下查询来创建上述表并实现内连接。

输出

SQL Join Example

外连接 (Outer Join) 示例

Outer Join

外连接允许用户在结果中获得一个或两个表的所有记录。SQL 中有三种类型的外连接。这三种类型包括左外连接、右外连接和全外连接。

我们将使用上述表来实现外连接。实现外连接的查询如下:

这将产生以下结果:

SQL Join Example

自连接 (Self Join) 示例

Self Join

顾名思义,它允许用户合并表。考虑一种情况,您拥有员工记录和他们的经理 ID。由于经理也是员工,因此他们的记录也存在于同一表中。

EmployeeID名字姓氏ManagerID
1阿曼维尔马NULL
2HarshSingh1
3SakshamYadav1
4VarunSingh2
5GuaravSharma3
6Nandini维尔马3

输出

SQL Join Example
下一个主题SQL 不等于