티스토리 뷰

728x90
반응형

1:N 관계에서 테이블을 join하다 보면 데이터가 중복되는 결과가 생긴다.
이럴 경우 중복을 제거해주어야 하는데 크게 두 가지 방법을 사용할 수 있다.
하나는 DISTINCT를 사용하는 방법이고 다른 하나는 group by를 사용하는 방법이다.

 

테이블 및 데이터 정의

department table
employee 테이블

 

- department 테이블과 emplyee 테이블을 join 하여 department 정보를 가져오는 경우

select dep.* from department dep join employee emp on dep.dep_no = emp.dep_no;

쿼리 결과

department 테이블과 emplyee 테이블을 join 하여 department 테이블 정보를 가져오고 싶은 경우 join을 사용하면 중복된 데이터가 존재한다. 이럴 경우 사용할 수 있는 방법이 2가지가 있다.

 

1. Distict를 사용하는 방법

select DISTINICT(dep.id) from department dep join employee emp on dep.department_no = emp.dep.department_no

 

2. group by를 사용하는 방법

1:N 관게를 가진 테이블 컬럼을 group by 걸어주면 중복이 제거 된다.

select dep.* from department dep join employee emp on dep.dep_no = emp.dep_no group by dep.dep_no ;

 

728x90
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함