# 多表连接

URL: https://caijiao.org/sqlite/query/join
Source: docs/sqlite/query/join.md
Description: 本章节介绍 SQLite 中多表连接查询的基本方法，包括内连接、左连接等，帮助用户从多个表中联合获取相关数据。

多表连接用于从多个表中组合数据，根据表间的相关字段匹配，实现复杂数据查询。你还可以结合 [聚合查询](/sqlite/query/aggregate) 或 [子查询](/sqlite/query/subquery) 来进一步处理连接后的数据。

## 内连接（INNER JOIN）

只返回两个表中匹配的记录。

```sql
SELECT a.column1, b.column2
FROM tableA a
INNER JOIN tableB b ON a.key = b.key;
```

示例：查询用户及其订单信息

```sql
SELECT users.name, orders.order_id, orders.amount
FROM users
INNER JOIN orders ON users.id = orders.user_id;
```

## 左连接（LEFT JOIN）

返回左表所有记录，以及右表匹配的记录，右表无匹配时返回 NULL。

```sql
SELECT a.column1, b.column2
FROM tableA a
LEFT JOIN tableB b ON a.key = b.key;
```

示例：查询所有用户及其订单（无订单用户也显示）

```sql
SELECT users.name, orders.order_id
FROM users
LEFT JOIN orders ON users.id = orders.user_id;
```

## 其他连接

[SQLite](/sqlite/) 还支持 `CROSS JOIN` 和 `SELF JOIN`，用于不同场景的数据组合。

通过多表连接，用户可以灵活整合多张表数据，满足复杂查询需求。
