이번 글에서는 JOIN
과 UNION
에 대해서 알아보겠다.
JOIN은 여러 테이블의 조합하여 하나의 결과로 보여주는 기능인데, 관계형 데이터 베이스의 존.재.이.유가 아닌가 싶다 ㅎㅎㅎ
그리고, JOIN은 실무에서 무조건 쓰이니까 꼭 알아두자!
UNION은 여러 개의 SELECT문을 하나의 결과로 보여주는 기능이다. 이 때, 각각의 SELECT문으로 선택된 필드의 개수와 타입과 순서는 모두 같아야한다.
SELECT * FROM users INNER JOIN members ON users.name = members.name;
SELECT * FROM users LEFT JOIN members ON users.name = members.name;
SELECT * FROM users RIGHT JOIN members ON users.name = members.name;
SELECT * FROM users CROSS JOIN members;
예시)
users테이블에서 나이가 20세 이상인 사람들과 이름이 홍길동인 사람들을 합쳐서 보여줘라.
위의 예시를 UNION을 활용한다면 아래와 같이 사용할 수 있다.
SELECT * FROM users WHERE age >= 20
UNION
SELECT * FROM users WHERE name = '홍길동';
UNION은 기본적으로 중복 데이터는 빼고 보여주는데, 중복 데이터까지 보여주려면 UNION 대신 UNION ALL을 사용하면 된다.
SELECT * FROM users WHERE age >= 20
UNION ALL
SELECT * FROM users WHERE name = '홍길동';