mysql连表查询怎么写
时间 : 2023-03-08 21:13:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

MySQL连表查询是指在查询中使用JOIN关键字,将两个或多个表按照某种关系联接起来,输出符合条件的数据。下面介绍MySQL中常用的连表查询方式:

1. 内连接:

内连接也叫等值连接,是指只输出两个表中符合条件的行数据。内连接的基本语法如下:

```mysql

SELECT 列名1, 列名2, … FROM 表名1 [INNER] JOIN 表名2 ON 连接条件;

其中,INNER JOIN可以省略,默认是内连接。连接条件可以是等值条件、范围条件等。例如:

```mysql

SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id;

2. 左连接:

左连接是指输出左表的所有行,以及右表中符合条件的行数据。如果连接条件不满足,则右表的列数据为NULL。左连接的基本语法如下:

```mysql

SELECT 列名1, 列名2, … FROM 表名1 LEFT JOIN 表名2 ON 连接条件;

其中,LEFT JOIN可以简写为LEFT,默认为左连接。例如:

```mysql

SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id;

3. 右连接:

右连接是指输出右表的所有行,以及左表中符合条件的行数据。如果连接条件不满足,则左表的列数据为NULL。右连接的基本语法如下:

```mysql

SELECT 列名1, 列名2, … FROM 表名1 RIGHT JOIN 表名2 ON 连接条件;

其中,RIGHT JOIN可以简写为RIGHT,默认为右连接。例如:

```mysql

SELECT * FROM table1 RIGHT JOIN table2 ON table1.id = table2.id;

4. 全外连接:

全外连接是指输出两张表中所有行数据,其中缺少的部分用NULL填充。全外连接的基本语法如下:

```mysql

SELECT 列名1, 列名2, … FROM 表名1 [LEFT/RIGHT] JOIN 表名2 ON 连接条件 UNION SELECT 列名1, 列名2, … FROM 表名1 [LEFT/RIGHT] JOIN 表名2 ON 连接条件 WHERE 表名1.列名1 IS NULL OR 表名2.列名2 IS NULL;

其中,LEFT JOIN和RIGHT JOIN分别表示左外连接和右外连接。UNION操作符用于合并两个查询结果集。例如:

```mysql

SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id UNION SELECT * FROM table1 RIGHT JOIN table2 ON table1.id = table2.id WHERE table1.id IS NULL OR table2.id IS NULL;

注意,MySQL不支持全外连接语法,需要使用UNION操作符实现。

以上就是MySQL中常用的连表查询方式,使用不同的连接方式可以满足不同的查询需求。