더북(TheBook)

 

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)

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.