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;
我们将使用以下两个表来证明这一点:
学生表:
費用表:
以下命令通过示例演示了 SQL 服务器中的 INNER JOIN:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students INNER JOIN Fee ON Students.admission = Fee.admission
该命令返回以下内容:
我们可以告诉学生哪些人已经支付了学费。我们使用了两个表中具有共同值的列,即录取列。
左外连接
这种类型的连接将返回左侧表中的所有行以及右侧表中具有匹配值的记录。例如:
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: