1. 程式人生 > >MySQL的內外連線查詢

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;