在 SQL 中,连接是将两张或更多表中的数据组合在一起的过程,从而创建新的数据集。连接通过共同的列或表达式完成,允许您检索跨表的相关信息。
表连接类型
有三种主要的表连接类型:内连接、外连接和交叉连接。
内连接:仅返回两张表 有的行。
外连接:根据连接条件返回匹配行,以及来自其中一张或两张表的非匹配行。包括左外连接、右外连接和全外连接。
交叉连接:返回两张表中所有可能的行组合,不基于连接条件。
连接语法
SQL 连接使用特定语法,如下所示:
SELECT *
FROM table1
JOIN table2
ON table1.column_name = table2.column_name;
其中:
* 表示从连接表中选择所有列。
table1 和 table2 是要连接的表。
column_name 是连接这两张表的公共列。
连接示例
考虑以下两张表:
Customers
| customer_id | name | city |
|---|---|---|
| 1 | John Doe | New York |
| 2 | Jane Smith | Boston |
Orders
| order_id | customer_id | product |
|---|---|---|
| 1 | 1 | Book |
| 2 | 1 | Pen |
| 3 | 2 | T-shirt |
要获取所有客户及其订单的信息,我们可以使用内连接:
SELECT *
FROM Customers
INNER JOIN Orders
ON Customers.customer_id = Orders.customer_id;
这将返回以下结果:
| customer_id | name | city | order_id | product |
|---|---|---|---|---|
| 1 | John Doe | New York | 1 | Book |
| 1 | John Doe | New York | 2 | Pen |
| 2 | Jane Smith | Boston | 3 | T-shirt |