MySQL的内外连接查询

创建员工表

CREATE TABLE employees(
id int primary key auto_increment,
name varchar(255),
age int,
tel varchar(255),
dep_id int
)

部门表

alter table employees add constraint `fk` foreign key (`dep_id`) references departments(`id`);
CREATE TABLE departments(
id int primary key auto_increment,
name varchar(255),
floor varchar(255)
)

管理表

CREATE TABLE manager(
id int primary key auto_increment,
emp_id int,
dep_id int,
foreign key(emp_id) references employees(id),
foreign key(dep_id) references departments(id)
);

插入数据

INSERT INTO employees (name,age,tel,dep_id) VALUES ("郑七",38,"14897623343",3),("王八",29,"18382462343",4);
INSERT INTO departments (name,floor) VALUES ("财务",1),("人事",3),("保安",1),("销售",1);
INSERT INTO manager (emp_id,dep_id) VALUES (2,1),(3,2),(5,3),(8,4);

1.每个部门负责人的联系方式;
2.每个人属于哪个部门;
3.财务部的所有人员以及领导(id,name,age,tel,部门,负责人);
4.所有在3楼的人;
5.查询tel中以5结尾和中间包括24的所有人;
6.查询18-30的员工;

1.
SELECT manager.id,employees.name ,departments.name AS "负责部门",employees.tel FROM manager
LEFT JOIN departments
ON manager.dep_id=departments.id
INNER JOIN employees
ON manager.emp_id=employees.id;
2.
SELECT employees.id,employees.name,departments.name AS "所属部门" FROM employees
LEFT JOIN departments
ON employees.dep_id=departments.id;
3.
SELECT employees.*,departments.name AS "所在部门" FROM employees
LEFT JOIN departments
ON employees.dep_id=departments.id
where departments.id=1;
4.
SELECT employees.id,employees.name,departments.floor AS "所在楼层" FROM employees
LEFT JOIN departments
ON employees.dep_id=departments.id
WHERE departments.floor=3;
5.
SELECT * FROM employees
WHERE tel LIKE '%24%' OR tel LIKE '%5';
6.
SELECT * FROM employees
WHERE age BETWEEN 18 AND 30;

猜你喜欢

转载自blog.csdn.net/zls120377/article/details/81201124