---
title: "LEFT JOIN - OB Cloud 云数据库 master | OceanBase 文档中心"
description: LEFT JOIN 左联接（LEFT JOIN）表示左外联接，该语句返回左表中的所有行，不包括右表中不匹配的行。 背景信息 外联接（OUTER JOIN）是使用比较运算符对两个表中的数据进行比较，联接结果不仅包含符合联接条件的行，同时也包含不符合条件的行。 外联接包括全联接（FULL JOIN）、左联接（LEFT J…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*qbZXRo_94ZEAAAAAAAAAAAAADiGDAQ/original) OB Cloud 云数据库

# LEFT JOIN

更新时间：2026-06-30 18:51:37

左联接（LEFT JOIN）表示左外联接，该语句返回左表中的所有行，不包括右表中不匹配的行。

## 背景信息

外联接（OUTER JOIN）是使用比较运算符对两个表中的数据进行比较，联接结果不仅包含符合联接条件的行，同时也包含不符合条件的行。

外联接包括全联接（FULL JOIN）、左联接（LEFT JOIN）和右联接（RIGHT JOIN）。外联接返回满足联接条件的所有行，同时从一个表返回没有使用的行，在另一个表相应位置填充 `NULL`。

本文主要提供左联接的示例指导，全联接相关示例请参见 [全联接](https://www.oceanbase.com/docs/common-oceanbase-cloud-1000000006083288)，右联接相关示例请参见 [右联接](https://www.oceanbase.com/docs/common-oceanbase-cloud-1000000000057892)。

## LEFT JOIN 语法

外联接语句中一般包括左表和右表，出现在 `JOIN` 子句最左边的为左表，出现在 `JOIN` 子句最右边的为右表。

LEFT JOIN 的语法格式如下：

```sql
SELECT select_list FROM table_name1 LEFT JOIN table_name2 ON join_condition
[ WHERE query_condition ]
[ ORDER BY column_list ];

```

其中，`table_name1` 为左表，`table_name2` 为右表。

## 示例

创建示例表并插入适当数据。

```sql
obclient [SYS]> CREATE TABLE tbl_a(id NUMBER NOT NULL PRIMARY KEY, name VARCHAR2(50));
Query OK, 0 rows affected

obclient [SYS]> CREATE TABLE tbl_b(num NUMBER NOT NULL PRIMARY KEY, value NUMBER);
Query OK, 0 rows affected

obclient [SYS]> INSERT INTO tbl_a VALUES(1,'ab'),(2,'cd'),(3,'ef'),(4,'gh');
Query OK, 6 rows affected
Records: 6  Duplicates: 0  Warnings: 0

obclient [SYS]> INSERT INTO tbl_b VALUES(1,1001),(3,1003),(5,1005);
Query OK, 4 rows affected
Records: 4  Duplicates: 0  Warnings: 0

```

### 简单左联接查询

当需要 `JOIN` 返回的数据除了符合联接条件和过滤条件的数据外，还包括左表里满足左表的过滤条件但不满足联接条件的数据时，就可以使用左联接。左联接返回的结果中属于右表的数据如果不存在，则该列返回 `NULL`。

示例 1：将表 `tbl_a` 和表 `tbl_b` 执行全联接查询，并获取返回结果。

```sql
obclient [SYS]> SELECT * FROM tbl_a;
+----+------+
| ID | NAME |
+----+------+
|  1 | ab   |
|  2 | cd   |
|  3 | ef   |
|  4 | gh   |
+----+------+
4 rows in set

obclient [SYS]> SELECT * FROM tbl_b;
+-----+-------+
| NUM | VALUE |
+-----+-------+
|   1 |  1001 |
|   3 |  1003 |
|   5 |  1005 |
+-----+-------+
3 rows in set

obclient [SYS]> SELECT tbl_a.id, tbl_a.name, tbl_b.num, tbl_b.value FROM tbl_a LEFT JOIN tbl_b on (tbl_a.id=tbl_b.num);
+------+------+--------+-------+
| ID   | NAME |   NUM  | VALUE |
+------+------+--------+-------+
|    1 | ab   |      1 |  1001 |
|    2 | cd   |   NULL |  NULL |
|    3 | ef   |      3 |  1003 |
|    4 | gh   |   NULL |  NULL |
+------+------+--------+-------+
4 rows in set

```

### 左联接和 WHERE 子句联合使用

您可以使用左联接获取联接结果，再使用 `WHERE` 子句对联接结果进行过滤。

obclient [SYS]> SELECT tbl_a.id, tbl_a.name, tbl_b.num, tbl_b.value FROM tbl_a LEFT JOIN tbl_b ON tbl_a.id=tbl_b.num WHERE tbl_b.num IS NOT NULL;
+----+------+-----+-------+
| ID | NAME | NUM | VALUE |
+----+------+-----+-------+
|  1 | ab   |   1 |  1001 |
|  3 | ef   |   3 |  1003 |
+----+------+-----+-------+
2 rows in set

```

## 相关文档

- [INNER JOIN](https://www.oceanbase.com/docs/common-oceanbase-cloud-1000000000057889)
 - [FULL JOIN](https://www.oceanbase.com/docs/common-oceanbase-cloud-1000000006083288)
 - [RIGHT JOIN](https://www.oceanbase.com/docs/common-oceanbase-cloud-1000000000057892)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
