5결합
결합( join)은 하나 이상의 열을 기준으로 두 테이블을 합치는 작업이다. MySQL은 inner(straight라고도 한다), left, right, outer, natural 등 다섯 가지 결합 타입을 지원한다. natural 결합은 left나 right 결합과도 사용할 수 있다. inner 결합은 두 테이블 모두에서 하나 이상의 공통 항목이 있는 행을 반환한다. left나 right 결합은 반대편 테이블에 매칭되는 행이 하나도 없더라도 left/right 테이블의 모든 행을 결합한다. outer 결합은 두 테이블 중 한 테이블에만 행이 있어도 이를 반환한다. 둘 중 하나의 테이블에 매칭되는 데이터가 없다면 서버는 그 대신에 NULL을 반환한다. natural 결합은 outer 결합처럼 행동하지만, 이름이 같은 열을 중복해서 반환하지는 않는다.
다음 명령어들은 직원의 직급으로 테이블을 만들고, 결합에 사용할 열에는 인덱스를 부여하며, 두 테이블에서 직원 이름과 직급을 출력한다(마지막 구문은 암묵적 inner 결합의 예다).
-- 테이블을 만들고 자료를 채워 넣는다.
CREATE TABLE position (eid INT, description TEXT);
INSERT INTO position (eid,description) VALUES (6,'Imposter'),
(1,'Accountant'),(4,'Programmer'),(5,'President');
ALTER TABLE position ADD INDEX(eid);
-- 결합한 데이터를 불러온다.
SELECT employee.empname,position.description
FROM employee,position WHERE employee.id=position.eid
ORDER BY position.description;
>>>
+--------------+-------------+
| empname | description |
+--------------+-------------+
| John Smith | Accountant |
| Anon I. Muss | Imposter |
| Abe Lincoln | President |
| Jane Doe | Programmer |
+--------------+-------------+
4 rows in set (0.00 sec)