Menu
Coddy logo textTech

Базовый JOIN, Часть 1

Часть раздела Основы путешествия по SQL на Coddy. Урок 43 из 72.

На данный момент мы решали задачи с одной таблицей. Теперь рассмотрим, как работать с несколькими таблицами.

Предположим, у нас есть следующие таблицы:

курсы

course_idlecturer_id
11
21
32

лекторы

lecturer_idимя
1Jhonas
2Malidos

Задача — вывести для каждого курса имя соответствующего преподавателя.

Есть два способа добиться этого. Для каждого варианта мы сопоставляем каждую строку одной таблицы со строкой другой. Мы проверяем условие, которое должно быть выполнено, и, если условие выполнено, объединяем две строки в одну. Желаемый результат для обоих вариантов:

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

Этот тип соединения также называется внутренним соединением.

challenge icon

Задание

Легко

Доступные таблицы и столбцы:

  • grades: course_id, student_id, grade
  • students: id, name

Создай запрос, который извлекает student_name, course_id, student_id и grade в одной таблице. Отсортируй результат по оценке в порядке возрастания.

Попробуйте сами

-- Перечислите столбцы, которые требует задание, используя псевдоним, который оно требует
SELECT ____
FROM students, grades
-- Оставьте только пары строк, где обе таблицы описывают одного и того же человека
WHERE ____
ORDER BY grade
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Песочница SQL