[MySQL] JOIN 연산의 종류분명 전산학부 졸업 했는데 코딩 개못하는 조준호/기타2024. 6. 26. 12:47
728x90
반응형
JOIN 연산: 두 개 이상의 테이블을 관련 열을 기준으로 결합
1️⃣ INNER JOIN
SELECT columns
FROM table1
INNER JOIN table2
ON table1.column = table2.column;
둘 모두에서 겹치는 애들만 모음
<원래 테이블>
<코드>
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments
ON employees.department_id = departments.department_id;
<결과>
🙋♂️ INNER JOIN 빼고 나머지는 전부 OUTER JOIN인가요?
👉 네.
2️⃣ LEFT JOIN
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.department_id;
왼쪽(LEFT)에 있는 애들을 가져다가 오른쪽 테이블에 합침
<원래 테이블>
<코드>
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.id;
<결과>
🙋♂️ Chalie는 왜 있나요?
👉 오른쪽 테이블에 해당되는 게 없어도 어쨌든 LEFT JOIN이니까 왼쪽 테이블에 있는 모든 애들을 다 가져다 쓰긴 해야 함
3️⃣ RIGHT JOIN (LEFT JOIN을 뒤집은 거니까 생략)
4️⃣ FULL JOIN
SELECT columns
FROM table1
LEFT JOIN table2
ON table1.column = table2.column
UNION
SELECT columns
FROM table1
RIGHT JOIN table2
ON table1.column = table2.column;
LEFT JOIN과 RIGHT JOIN을 합쳐 큰 테이블을 만듦. 서로에게 없는 정보는 NULL로 입력.
다만 MySQL은 'FULL JOIN'이 없기 때문에 UNION을 사용해서 수동으로 구현해야 함.
<원래 테이블>
<코드>
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.id
UNION
SELECT employees.name, departments.department_name
FROM employees
RIGHT JOIN departments
ON employees.department_id = departments.id;
<결과>
728x90
반응형
'분명 전산학부 졸업 했는데 코딩 개못하는 조준호 > 기타' 카테고리의 다른 글
[o1-preview] OpenAI가 또 새로운 서비스를 내놓았다!!! - (2) GPT-4o까지의 변화 (0) | 2024.09.17 |
---|---|
[o1-preview] OpenAI가 또 새로운 서비스를 내놓았다!!! - (1) GPT 자체에 대해 알아보는 시간 (11) | 2024.09.17 |
cmd에서 언제 슬래시(/)를 쓰고 언제 백슬래시(\)를 쓸까? (0) | 2024.07.01 |
[MySQL] PRIMARY KEY 만들고 넣을 때 참고 사항 (0) | 2024.06.27 |
DB와 DBMS (0) | 2024.06.25 |
@팜팜이S :: 팜팜은행: 한국은행 총재 조준호
한국은행 들어갈 때까지만 합니다
조만간 티비에서 봅시다