sql内连接查询
语法
-
select 字段 from 表1 inner join 表2 on 连接条件;
-
select 字段 from 表1 join 表2 on 连接条件;
-
select 字段 from 表1, 表2 [where 关联条件];
测试脚本
建表脚本
2张表:
t_team:组表。
temployee:员⼯表,内部有个teamid引⽤组表的id。
drop table if exists t_team;
create table t_team(
id int not null AUTO_INCREMENT PRIMARY KEY comment '组id',
team_name varchar(32) not null default '' comment '名称'
) comment '组表';
drop table if exists t_employee;
create table t_employee(
id int not null AUTO_INCREMENT PRIMARY KEY comment '部门id',
emp_name varchar(32) not null default '' comment '员⼯名称',
team_id int not null default 0 comment '员⼯所在组id'
) comment '员⼯表表';
insert into t_team values (1,'架构组'),(2,'测试组'),(3,'java组'),(4,'前端
组');
insert into t_employee values (1,'路⼈甲Java',1),(2,'张三',2),(3,'李
四',3),(4,'王五',0),(5,'赵六',0);
具体数据
mysql> select * from t_team;
+----+-----------+
| id | team_name |
+----+-----------+
| 1 | 架构组 |
| 2 | 测试组 |
| 3 | java组 |
| 4 | 前端组 |
+----+-----------+
4 rows in set (0.00 sec)
t_employee 表5条记录,如下:
mysql> select * from t_employee;
+----+---------------+---------+
| id | emp_name | team_id |
+----+---------------+---------+
| 1 | 路⼈甲Java | 1 |
| 2 | 张三 | 2 |
| 3 | 李四 | 3 |
| 4 | 王五 | 0 |
| 5 | 赵六 | 0 |
+----+---------------+---------+
5 rows in set (0.00 sec)
测试sql
-- 第一种
SELECT
t2.team_name,
t1.emp_name
FROM
t_employee t1
INNER JOIN t_team t2 ON t1.team_id = t2.id
-- 第二种
SELECT
t2.team_name,
t1.emp_name
FROM
t_employee t1
JOIN t_team t2 ON t1.team_id = t2.id
-- 第三种
SELECT
t2.team_name,
t1.emp_name
FROM
t_employee t1,
t_team t2
WHERE
t1.team_id = t2.id
总结
- inner join 可以简写成 join
- 以上三种方法都是内连接查询
- 通常我是使用第二种,因为inner join 更能体现出是内连接查询