Menu
Coddy logo textTech

Basic Join Part 1

Coddy SQL 여정의 기초 섹션에 포함된 레슨. 72개 중 43번째.

지금까지는 단일 테이블 문제들을 다루었습니다. 이제 여러 테이블을 처리하는 방법을 알아보겠습니다.

다음과 같은 `tables`가 있다고 가정해 봅시다.

courses

course_idlecturer_id
11
21
32

lecturers

lecturer_idname
1Jhonas
2Malidos

각 과목과 그에 해당하는 강사의 이름을 함께 출력하는 것이 task입니다.

이를 달성하는 데는 두 가지 방법이 있습니다. 각 옵션에 대해 한 테이블의 각 행을 다른 테이블의 행과 매칭합니다. 충족되어야 하는 조건을 확인하고, 조건이 충족되면 두 행을 하나로 결합합니다. 두 옵션 모두에 대한 결과는 다음과 같습니다:

course_idlecturer_name
1Jhonas
2Jhonas
3Malidos

옵션 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_id

WHERE 대신 JOIN table ON condition을 사용합니다.

이러한 유형의 조인을 이너 조인(inner join)이라고도 부릅니다.

challenge icon

챌린지

쉬움

사용 가능한 테이블과 컬럼:

  • <strong>grades</strong>: <strong>course_id</strong>, <strong>student_id</strong>, <strong>grade</strong>
  • <strong>students</strong>: <strong>id</strong>, <strong>name</strong>

student_name, course_id, student_id, grade를 하나의 테이블로 가져오는 쿼리를 작성하세요. 결과를 grade 기준 오름차순으로 정렬하세요.

직접 해보기

-- 작업에서 요청한 열을 요청한 별칭을 사용하여 나열하세요
SELECT ____
FROM students, grades
-- 두 테이블이 같은 사람을 설명하는 행 쌍만 유지하세요
WHERE ____
ORDER BY grade
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: SQL 플레이그라운드