Оператор 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
Задача доступна премиум пользователям!

ВВЕДЕНИЕ

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

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

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

ТЕСТ ДИЗАЙН

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

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

POSTMAN

БАЗЫ ДАННЫХ

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

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

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

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