기본 조인 1부
Coddy SQL 여정의 기초 섹션에 포함된 레슨. 72개 중 43번째.
지금까지는 단일 테이블의 문제를 다뤘습니다. 이제 여러 테이블을 처리하는 방법을 살펴보겠습니다.
다음과 같은 테이블이 있다고 가정해 봅시다.
강좌
| course_id | lecturer_id |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
강사
| lecturer_id | 이름 |
|---|---|
| 1 | Jhonas |
| 2 | Malidos |
각 과정에 해당 강사의 이름을 함께 표시하는 것이 과제입니다.
이를 달성하는 방법은 두 가지입니다. 각 방법에서는 한 테이블의 각 행을 다른 테이블의 행과 대응시킵니다. 충족해야 하는 조건을 확인하고, 조건이 충족되면 두 행을 하나로 결합합니다. 두 방법 모두에서 원하는 결과는 다음과 같습니다.
| 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가 같아야 한다고 지정합니다. 이제 SELECT 절에 table.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 플레이그라운드