mysql的inner left join 和outer left join有什么区别
时间: 2024-01-20 10:16:34 浏览: 26
MySQL中的INNER JOIN和LEFT JOIN是两种常见的连接操作,它们有以下区别:
1. INNER JOIN(内连接):
- INNER JOIN返回两个表中匹配的行,即只返回两个表中连接列(ON子句中指定的列)值相等的行。
- 如果两个表中的连接列没有匹配的值,则不会返回任何行。
- INNER JOIN是默认的连接类型,如果不指定连接类型,默认为INNER JOIN。
2. LEFT JOIN(左连接):
- LEFT JOIN返回左表中的所有行,以及右表中与左表中连接列(ON子句中指定的列)值相等的行。
- 如果右表中的连接列没有匹配的值,则返回NULL值。
- 左表中没有匹配的行也会被包含在结果中。
下面是一个示例演示:
```sql
-- 创建两个表
CREATE TABLE table1 (
id INT,
name VARCHAR(50)
);
CREATE TABLE table2 (
id INT,
age INT
);
-- 插入数据
INSERT INTO table1 (id, name) VALUES (1, 'John');
INSERT INTO table1 (id, name) VALUES (2, 'Jane');
INSERT INTO table1 (id, name) VALUES (3, 'Mike');
INSERT INTO table2 (id, age) VALUES (1, 25);
INSERT INTO table2 (id, age) VALUES (3, 30);
INSERT INTO table2 (id, age) VALUES (4, 35);
-- INNER JOIN示例
SELECT * FROM table1
INNER JOIN table2 ON table1.id = table2.id;
-- LEFT JOIN示例
SELECT * FROM table1
LEFT JOIN table2 ON table1.id = table2.id;
```