기본 조인 1부
Coddy SQL 여정의 기초 섹션에 포함된 레슨. 72개 중 43번째.
지금까지는 단일 테이블의 문제를 다뤘습니다. 이제 여러 테이블을 처리하는 방법을 살펴보겠습니다.
다음과 같은 tables가 있다고 가정해 봅시다:
courses
| course_id | lecturer_id |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
lecturers
| lecturer_id | 이름 |
|---|---|
| 1 | Jhonas |
| 2 | Malidos |
각 과정에 해당하는 강사의 이름을 제시하는 것이 과제입니다.
이를 달성하는 방법은 두 가지입니다. 각 옵션에서는 한 테이블의 각 row를 다른 테이블의 row와 일치시킵니다. 충족되어야 하는 조건을 확인하고, 조건이 충족되면 두 row를 하나로 결합합니다. 두 옵션에서 원하는 결과는 다음과 같습니다.
| course_id | lecturer_name |
|---|---|
| 1 | Jhonas |
| 2 | Jhonas |
| 3 | Malidos |
옵션 1:
SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses, lecturers
WHERE courses.lecturer_id = lecturers.lecturer_id여기서는 FROM 키워드에 두 개의 테이블을 작성하고, WHERE 절에서는 두 레코드의 lecturer_id가 same이어야 한다고 요청합니다. 이제 SELECT 절에 table.column을 작성하여 데이터베이스가 해당 column을 어디에서 가져와야 하는지 알 수 있도록 합니다.
옵션 2:
SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses
JOIN lecturers ON courses.lecturer_id = lecturers.lecturer_idWHERE 대신 JOIN table ON condition을 사용합니다
이 유형의 조인은 내부 조인이라고도 합니다.
챌린지
쉬움사용 가능한 테이블과 열:
grades:course_id,student_id,gradestudents:id,name
하나의 테이블에서 student_name, course_id, student_id 및 grade를 가져오는 쿼리를 작성하세요. 결과를 grade의 오름차순으로 정렬하세요.
직접 해보기
-- 작업에서 요청한 열을 요청한 별칭을 사용하여 나열하세요
SELECT ____
FROM students, grades
-- 두 테이블이 같은 사람을 설명하는 행 쌍만 유지하세요
WHERE ____
ORDER BY grade이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: SQL 플레이그라운드