admin 管理员组

文章数量: 1086019


2024年3月10日发(作者:winfield)

Sql join的用法

SQL 中的 JOIN 是用于从两个或多个表中检索数据的操作。JOIN 操作基于表之间的关联关

系,它将符合指定关联条件的行连接在一起,形成一个包含所有相关信息的结果集。

以下是 SQL 中的几种常见的 JOIN 类型:

1. INNER JOIN(内连接):

- INNER JOIN 从多个表中检索满足连接条件的行。如果两个表中的行在连接条件上匹配,

那么这些行将被包括在结果集中。

```sql

SELECT ee_id, ee_name,

ment_name

FROM employees

INNER JOIN departments ON ment_id = ment_id;

```

2. LEFT JOIN(左连接):

- LEFT JOIN 返回左表的所有行以及右表中匹配的行。如果右表中没有匹配的行,那么结

果集中将包含 NULL 值。

```sql

SELECT er_id, er_name, _id

FROM customers

LEFT JOIN orders ON er_id = er_id;

```

3. RIGHT JOIN(右连接):

- RIGHT JOIN 返回右表的所有行以及左表中匹配的行。如果左表中没有匹配的行,那么

结果集中将包含 NULL 值。

```sql

SELECT _id, er_name, _date

FROM customers

RIGHT JOIN orders ON er_id = er_id;

```

4. FULL JOIN(全连接):

- FULL JOIN 返回左表和右表中的所有行,如果它们在连接条件上匹配,那么就会显示匹

配的行,如果没有匹配,结果集中将包含 NULL 值。

```sql

SELECT ee_id, ee_name,

ment_name

FROM employees

FULL JOIN departments ON ment_id = ment_id;

```

5. CROSS JOIN(交叉连接):

- CROSS JOIN 返回两个表的笛卡尔积,即左表中的每一行都与右表中的每一行组合。

```sql

SELECT ee_id, ee_name,

ment_name

FROM employees

CROSS JOIN departments;

```

在使用 JOIN 时,通常需要指定连接条件,这是通过使用 `ON` 子句来实现的。连接条件是

两个表之间共同的列,它们用于匹配表中的行。例如,在 `ON ment_id =

ment_id` 中,`department_id` 是连接条件。SQL 中的 JOIN 是用于从两

个或多个表中检索数据的操作。JOIN 操作基于表之间的关联关系,它将符合指定关联条件

的行连接在一起,形成一个包含所有相关信息的结果集。

以下是 SQL 中的几种常见的 JOIN 类型:

1. INNER JOIN(内连接):

- INNER JOIN 从多个表中检索满足连接条件的行。如果两个表中的行在连接条件上匹配,

那么这些行将被包括在结果集中。

```sql

SELECT ee_id, ee_name,

ment_name

FROM employees

INNER JOIN departments ON ment_id = ment_id;

```

2. LEFT JOIN(左连接):

- LEFT JOIN 返回左表的所有行以及右表中匹配的行。如果右表中没有匹配的行,那么结

果集中将包含 NULL 值。

```sql

SELECT er_id, er_name, _id

FROM customers

LEFT JOIN orders ON er_id = er_id;

```

3. RIGHT JOIN(右连接):

- RIGHT JOIN 返回右表的所有行以及左表中匹配的行。如果左表中没有匹配的行,那么

结果集中将包含 NULL 值。

```sql

SELECT _id, er_name, _date

FROM customers

RIGHT JOIN orders ON er_id = er_id;

```

4. FULL JOIN(全连接):

- FULL JOIN 返回左表和右表中的所有行,如果它们在连接条件上匹配,那么就会显示匹

配的行,如果没有匹配,结果集中将包含 NULL 值。

```sql

SELECT ee_id, ee_name,

ment_name

FROM employees

FULL JOIN departments ON ment_id = ment_id;

```

5. CROSS JOIN(交叉连接):

- CROSS JOIN 返回两个表的笛卡尔积,即左表中的每一行都与右表中的每一行组合。

```sql

SELECT ee_id, ee_name,

ment_name

FROM employees

CROSS JOIN departments;

```

在使用 JOIN 时,通常需要指定连接条件,这是通过使用 `ON` 子句来实现的。连接条件是

两个表之间共同的列,它们用于匹配表中的行。例如,在 `ON ment_id =

ment_id` 中,`department_id` 是连接条件。


本文标签: 连接 条件 匹配 表中