Базовый JOIN, Часть 1
Часть раздела Основы путешествия по SQL на Coddy — урок 43 из 72.
На данный момент мы рассмотрели задачи с одной таблицей. Теперь мы изучим, как работать с несколькими таблицами.
Предположим, у нас есть следующие таблицы:
курсы
| course_id | lecturer_id |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
преподаватели
| lecturer_id | name |
|---|---|
| 1 | Jhonas |
| 2 | Malidos |
Задача — представить для каждого курса имя соответствующего лектора.
Есть два способа добиться этого. Для каждого варианта мы сопоставляем каждую строку в одной таблице с другой. Мы проверяем условие, которое должно быть выполнено, и если условие выполнено, мы объединяем две строки в одну. Желаемый результат для обоих вариантов:
| идентификатор_курса | имя_преподавателя |
|---|---|
| 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_idВместо WHERE мы используем JOIN table ON condition
Этот тип соединения также называется внутренним соединением.
Задание
ЛегкоДоступные таблицы и столбцы:
<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 в порядке возрастания.
Попробуйте сами
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Больше ключевых слов
Ключевое слово INКлючевое слово BETWEENКлючевое слово LIKEКлючевое слово ASПовторение - Модели мобильных телефонов2Условия
Основы условийКлючевое слово ANDКлючевое слово ORКлючевое слово NOTКомбинирование нескольких условийСкобкиБулевы значения5Арифметические операции
Математические операторыМатематические столбцыОперация moduloФункция ROUND()3Специальный формат возврата
Значения NULLСортировка результатов, часть 1Сортировка результатов, часть 2Повторение - Фирма по кибербезопасностиОграничение количества записейПовторение - Автозавод6Вводные вызовы
Повторение - Парламентские выборыПовторение - Арест преступника полициейПовторение - Ёмкость для напитков в бареПовторение - Создание новых столбцов