Оператор JOIN

Оператор JOIN позволяет писать SQL запросы с выборкой данных из нескольких таблиц на основе определенного условия объединения.

A SQL query walks into a bar and sees two tables.
He walks up to them and says:
'Can I join you?'

INNER JOIN

Пересечение множеств

Работа оператора JOIN подобна операциям над множествами в реляционной алгебре.

Допустим, у нас есть две таблицы: коты и конфеты. Каждая запись в таблице котов содержит идентификатор принадлежащей ему конфетыcandy_id.

Таблица cat

id name candy_id
1 Мия 3
2 Брат Кота-астронавта null
3 Кот-астронавт 2

Таблица candy

id name
1 Плутоновое Пралине
2 Взрывная Комета
3 Вселенская Гармония

null — специальное значение, обозначающее отсутствие данных, у кота с идентификатором 2 нет конфеты.

Сформируем SQL запрос объединения данных таблиц cat и candy на условии равенства идентификатора конфеты (candy_id = id) в обеих таблицах.

SELECT cat.name, candy.name               -- выбрать имена котов и имена конфет
FROM cat                                  -- из таблицы cat
JOIN candy ON cat.candy_id = candy.id;    -- объединить с таблицей candy по равенству идентификатора конфеты

Результатом выполнения запроса будет объединенная таблица со склеенными записями из таблиц cat и candy.

Объединенная таблица cat и candy

cat.name candy.name
Мия Вселенская Гармония
Кот-астронавт Взрывная Комета
Cat and candy tables inner join example
INNER JOIN используется по умолчанию, если не указывать дополнительные ключевые слова.
JOIN = INNER JOIN

Другие типы JOIN

LEFT JOIN, RIGHT JOIN, FULL JOIN

Помимо INNER JOIN существуют и другие типы объединения таблиц:

LEFT JOIN включает все записи из таблицы, указанной перед JOIN и записи на пересечении


RIGHT JOIN включает все записи из таблицы, указанной после JOIN и записи на пересечении


FULL JOIN включает все записи из обеих таблиц

JOIN запросы с NULL

Чтобы выбрать только записи, не попадающие на пересечение таблиц, необходимо указать условие в запросе:

WHERE table_name.column_name IS NULL

LEFT JOIN c NULL


RIGHT JOIN c NULL


FULL JOIN c NULL

Задача

Напишите SQL-запрос, который вернет всех котов и принадлежащие им конфеты.

SQL симулятор

Логические операторы не поддерживаются симулятором

Схема базы данных:

Cat and candy tables database schema
Задача доступна премиум пользователям!

Открой доступ, чтобы заниматься без ограничений.

Полный доступ ко всем практическим задачам
Проверка ответов
Неограниченное количество попыток
Sidebar arrow

ВВЕДЕНИЕ

БАЗОВЫЕ ЗНАНИЯ

УРОВНИ ТЕСТИРОВАНИЯ

UI ТЕСТИРОВАНИЕ

ТЕХНИКИ ТЕСТ ДИЗАЙНА

ТЕСТОВАЯ ДОКУМЕНТАЦИЯ

АУТЕНТИФИКАЦИЯ И АВТОРИЗАЦИЯ

POSTMAN

БАЗЫ ДАННЫХ

ТЕСТИРОВАНИЕ РЕЛИЗА

АНАЛИЗ РАБОТЫ ПРИЛОЖЕНИЯ

ПОДГОТОВКА К СОБЕСЕДОВАНИЮ

Как составить резюме Топ вопросов Тест Собеседование