SQL Server 中的 JOINS:带有示例的教程

我们可以使用 JOIN 语句从多个表中检索数据。SQL Server 中主要有 4 种不同类型的 JOINS。我们将学习以下所有 JOINS SQL服务器 举例来说:

  • 内连接/简单连接
  • 左外连接/左连接
  • 右外连接/右连接
  • 全外连接

INNER JOIN

这种类型的 SQL Server JOIN 返回所有满足连接条件的表中的行。它采用以下语法:

SELECT columns
FROM table_1 
INNER JOIN table_2
ON table_1.column = table_2.column;

我们将使用以下两个表来证明这一点:

学生表:

INNER JOIN

費用表:

INNER JOIN

以下命令通过示例演示了 SQL 服务器中的 INNER JOIN:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
INNER JOIN Fee
ON Students.admission = Fee.admission

该命令返回以下内容:

INNER JOIN

我们可以告诉学生哪些人已经支付了学费。我们使用了两个表中具有共同值的列,即录取列。

左外连接

这种类型的连接将返回左侧表中的所有行以及右侧表中具有匹配值的记录。例如:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
LEFT OUTER JOIN Fee
ON Students.admission = Fee.admission

代码返回以下内容:

左外连接

在相应的列中,没有匹配值的记录将被替换为 NULL。

右外连接

这种类型的连接返回右侧表中的所有行以及左侧表中具有匹配值的行。例如:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
RIGHT OUTER JOIN Fee
ON Students.admission = Fee.admission

OUTER JOINS SQL 服务器的语句返回以下内容:

右外连接

出现上述输出的原因是,当在 admission 列上匹配时,Fee 表中的所有行均可在 Students 表中使用。

全外连接

这种类型的连接返回两个表中所有不满足 JOIN 条件的具有 NULL 值的行。例如:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
FULL OUTER JOIN Fee
ON Students.admission = Fee.admission

对于 FULL OUTER JOINS 查询,代码将返回以下结果 SQL:

全外连接