mysql join 和 inner join的区别
时间: 2023-12-26 14:28:08 浏览: 126
MySQL中的JOIN是用于将两个或多个表中的行连接在一起的操作。INNER JOIN是JOIN的一种类型,它返回两个表中共有的行。
下面是MySQL JOIN和INNER JOIN的区别:
1. JOIN是一个关键字,用于将两个或多个表连接在一起。INNER JOIN是JOIN的一种类型,它只返回两个表中共有的行。
2. JOIN可以使用不同的连接条件,如等值连接、不等值连接、自连接等。INNER JOIN使用等值连接,即只返回两个表中连接列值相等的行。
3. JOIN可以连接多个表,而INNER JOIN只能连接两个表。
4. JOIN可以返回左表和右表中的所有行,即使没有匹配的行。INNER JOIN只返回两个表中连接列值相等的行。
下面是一个示例,演示了MySQL JOIN和INNER JOIN的使用:
```sql
-- 创建两个表
CREATE TABLE table1 (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE table2 (
id INT PRIMARY KEY,
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 (2, 30);
INSERT INTO table2 (id, age) VALUES (4, 35);
-- 使用JOIN查询两个表中共有的行
SELECT table1.name, table2.age
FROM table1
JOIN table2 ON table1.id = table2.id;
-- 使用INNER JOIN查询两个表中共有的行
SELECT table1.name, table2.age
FROM table1
INNER JOIN table2 ON table1.id = table2.id;
```
以上示例中,JOIN查询返回了所有的行,包括没有匹配的行。而INNER JOIN查询只返回了两个表中连接列值相等的行。
阅读全文