반응형
개발할때는 역시 막히던 것을 속시원하게 뚫어내고 깨달음을 얻었을 때 가장 기분이 좋은 것 같다. 현직에서 쿼리문을 많이 작성하시는 분들에게는 쉬울 내용이지만 차근차근 배워가는 병아리로서 오늘 얻은 3개 테이블 조인 쿼리문에 대한 깨달음을 정리해본다.
테이블1 : company
회사 정보가 있는 테이블. 회사의 id(PK), 회사 이름 컬럼이 있다.
테이블2 : solution
솔루션의 정보가 있는 테이블. 솔루션의 id(PK), 솔루션 이름 컬럼이 있다.
테이블3 : company_solution
회사별로 어떤 솔루션이 있는지에 대한 테이블. id(PK), company_id(company 테이블의 pk), solution_id(solution 테이블의 pk)가 있다. 외래키 제약조건은 걸어두지 않았다.
모든 회사들이 각각 어떤 솔루션을 가지고 있는지 조회
SELECT cs.company_id, cs.solution_id, c.name as company_name, s.name as solution_name
FROM company_solution cs
LEFT OUTER JOIN company c ON cs.company_id = c.id
LEFT OUTER JOIN solution s ON cs.solution_id = s.id
특정 회사의 id를 알고 있고, 그 회사가 어떤 솔루션을 가지고 있는지 조회
SELECT cs.company_id, cs.solution_id, c.name as company_name, s.name as solution_name
FROM company_solution cs
LEFT OUTER JOIN company c ON cs.company_id = c.id and c.id = 5
LEFT OUTER JOIN solution s ON cs.solution_id = s.id
WHERE c.id = 5;
특히 두번째 쿼리문 작성시에 WHERE 절을 넣어주지 않는다면 company가 null인 정보도 조회가 되기 때문에 3개의 행이 출력된다. 따라서 필요한 정보만 잡으려면 WHERE 절을 필히 작성해주자!
반응형
'개발 지식 > DB' 카테고리의 다른 글
[RDBMS] JOIN 내 ON과 WHERE의 차이 (0) | 2020.02.18 |
---|---|
[RDBMS] JOIN 기본 개념 (0) | 2020.02.16 |
[PostgreSQL] 테이블 생성 및 레코드 INSERT SELECT (0) | 2020.01.21 |
[PostgreSQL] 기본 사용법2 (0) | 2020.01.17 |
[postgreSQL] 기본 사용법 (0) | 2020.01.16 |