RIGHT JOIN
- 오른쪽 테이블의 모든 레코드를 포함하며, 왼쪽 테이블에서 일치하는 레코드가 있으면 이를 결합합니다.
- 실제로 RIGHT JOIN은 LEFT JOIN과 테이블 순서만 바꿔서 사용할 수 있습니다. 결과는 동일하지만, 조인 방향이 반대가 됩니다
SELECT
d.dept_no, m.emp_no, d.dept_name
FROM
dept_manager_dup m
RIGHT JOIN
departments_dup d ON m.dept_no = d.dept_no
ORDER BY dept_no;
SQL 조인 구문: 새로운 방식과 오래된 방식
오래된 조인 구문에서는 WHERE 절을 사용하여 테이블을 결합합니다
SELECT t1.column_name, t2.column_name
FROM table_1 t1, table_2 t2
WHERE t1.column_name = t2.column_name;
- 이 방식에서는 FROM 절에서 두 테이블을 쉼표로 나열한 후, WHERE 절에서 조인 조건을 지정합니다.
- 이러한 방식은 과거에 널리 사용되었지만, 현재는 잘 사용되지 않습니다.
- 시간이 많이 소요되고 가독성이 떨어지기 때문입니다.
JOIN과 WHERE 절 함께 사용하기
- 조인과 WHERE 절을 함께 사용하는 경우를 살펴보겠습니다.
- 조인은 테이블 간의 연결을 처리하고, WHERE 절은 특정 조건을 적용하여 결과를 필터링합니다.
- 이 두 가지를 함께 사용하면 원하는 데이터만을 효율적으로 추출할 수 있습니다
/*
INNER JOIN된 테이블들 중 salary가 145000보다 높은 데이터들만 가져온다.
*/
SELECT
e.emp_no, e.first_name, e.last_name, s.salary
FROM
employees e
JOIN
salaries s ON e.emp_no = s.emp_no
WHERE
s.salary > 145000;
CROSS JOIN
- CROSS JOIN은 두 테이블의 모든 가능한 조합을 반환합니다.
- 즉, 첫 번째 테이블의 각 행이 두 번째 테이블의 모든 행과 결합됩니다.
- 이를 '카티전 곱(Cartesian product)'이라고 부릅니다.
- CROSS JOIN은 데이터베이스의 테이블이 잘 연결되지 않은 경우에 유용할 수 있습니다
-- 모든 행이 추가가 되어 출력된다.
SELECT
dm.*, d.*
FROM
dept_manager dm
CROSS JOIN
departments d
ORDER BY dm.emp_no , d.dept_no;
- 여기서 열의 개수가 다른데 어떻게 합쳐질 것인가??
- 해당 첫번째 테이블의 기본키를 기준으로 두번째 테이블의 데이터들이 하나씩 들어간다고 보면 될 거 같습니다.
- 아래 결과를 봐보겠습니다.
이상입니다~~
728x90
'Data Analyst > SQL' 카테고리의 다른 글
SQL - SubQuery (1) | 2024.09.09 |
---|---|
SQL - 여러 테이블 JOIN, SQL JOIN 사용 시 유용한 팁, UNION, UNION ALL (0) | 2024.09.03 |
SQL - INNER JOIN, DUPLICATED, LEFT JOIN (0) | 2024.08.31 |
SQL - DELETE, TRUNCATE, Aggregate functions(집계함수), IFNULL - COALESCE (0) | 2024.08.29 |
SQL - The INSERT Statement, The UPDATE Statement, COMMIT and ROLLBACK (0) | 2024.08.28 |