본문 바로가기
컴퓨터과학/데이터베이스

[MySQL] JOIN 문

by 윤호 2021. 2. 22.

생활코딩 DATABASE2 MySQL 강의를 참고하여 SQL 기초에 대해 정리하겠습니다.

 

관계형 데이터베이스는 테이블을 분할하여 저장할 수 있습니다.

이는 데이터의 중복 저장을 피하고 유지보수를 편리하게 합니다.

그리고 분할된 테이블을 합쳐서 한번에 볼 수 있도록 하는 것이 JOIN 입니다.

(관계형 데이터베이스의 꽃이라는군요)

 

다음과 같이 테이블을 분할하여 저장할 수있습니다.

JOIN 문을 통해 topic 테이블을 부를 때 author_id만 가지고도 author 테이블의 name 칼럼과 profile 칼럼을 가져올 수 있습니다.

 

기본적으로 다음과 같이 JOIN 문을 사용합니다.

SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.id;
-- ON 으로 어떻게 JOIN 할 지 알려줌

 

1개 이상의 테이블을 참조하기 때문에 칼럼명이 중복될 경우 오류가 발생할 수 있습니다.

SELECT id, title, author FROM topic LEFT JOIN author ON topic.author_id = author.id;
-- column 'id' 가 ambiguous 하다는 에러가 발생함.
-- 두 테이블이 모두 id 칼럼을 갖기 때문.

SELECT topic.id, title, author FROM topic LEFT JOIN author ON topic.author_id = author.id;
-- 중복되는 칼럼은 앞에 테이블 명을 명시해서 ambiguous를 피함

 

댓글