首先建立兩張關聯資料表:員工基本資料表 emp 與員工部門對照表 emp_dept。
CREATE TABLE emp (
id INT NOT NULL PRIMARY KEY,
name VARCHAR(10)
);
CREATE TABLE emp_dept (
dept_id VARCHAR(4) NOT NULL,
emp_id INT NOT NULL,
emp_name VARCHAR(10),
PRIMARY KEY (dept_id, emp_id)
);
INSERT INTO emp VALUES
(1, 'Dennis-1'), (2, 'Dennis-2'), (3, 'Dennis-3'),
(4, 'Dennis-4'), (5, 'Dennis-5'), (6, 'Dennis-6'),
(7, 'Dennis-7'), (8, 'Dennis-8'), (9, 'Dennis-9'),
(10, 'Dennis-10');
INSERT INTO emp_dept VALUES
('R&D', 1, 'Dennis-1'),
('DEV', 2, 'Dennis-2'),
('R&D', 3, 'Dennis-3'),
('TEST', 4, 'Dennis-4'),
('TEST', 5, 'Dennis-5');
只回傳兩張表都符合條件的資料:
SELECT e.id, e.name, d.dept_id
FROM emp e
INNER JOIN emp_dept d ON e.id = d.emp_id;
以左表為主,右表無對應則顯示 NULL:
SELECT e.id, e.name, d.dept_id
FROM emp e
LEFT JOIN emp_dept d ON e.id = d.emp_id;
以右表為主,左表無對應則顯示 NULL:
SELECT e.id, e.name, d.dept_id
FROM emp e
RIGHT JOIN emp_dept d ON e.id = d.emp_id;
SELECT *,明確指定所需欄位