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