mysql 内连接外连接及其他连接方式也也做一下说明
时间: 2023-08-06 21:04:18 浏览: 64
当我们需要从多个表中检索数据时,我们可以使用连接(join)操作。连接操作允许我们将两个或更多表中的行组合在一起,以便我们可以根据需要访问这些行。MySQL支持不同类型的连接操作,包括内连接、外连接和自连接。
1. 内连接(INNER JOIN):内连接返回两个表中都匹配的行,即在连接表中只返回两个表中都存在的记录。语法为:
```
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
```
2. 左外连接(LEFT JOIN):左外连接返回左表中所有的行以及与右表中匹配的行。如果右表中没有匹配的行,则返回 NULL 值。语法为:
```
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
```
3. 右外连接(RIGHT JOIN):右外连接返回右表中所有的行以及与左表中匹配的行。如果左表中没有匹配的行,则返回 NULL 值。语法为:
```
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
```
4. 全外连接(FULL JOIN):全外连接返回左表和右表中所有的行。如果某个表中没有匹配的行,则返回 NULL 值。MySQL 不支持 FULL JOIN,但是可以使用 LEFT JOIN 和 UNION ALL 语句来实现。语法为:
```
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name
UNION ALL
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name
WHERE table1.column_name IS NULL;
```
5. 自连接(SELF JOIN):自连接是指连接同一表中的两个实例。自连接通常用于在同一表中查找相关的行。语法为:
```
SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition;
```
其中 T1 和 T2 是同一表的表别名,condition 是指定连接条件的语句。