SQL Natural Join
Что такое естественное соединение в SQL?
Мы уже узнали, что EQUI JOIN выполняет JOIN против равенства или сопоставления значений столбцов соответствующих таблиц, а знак равенства (=) используется в качестве оператора сравнения в предложении where для ссылки на равенство.
SQL NATURAL JOIN является типом EQUI JOIN и структурирован таким образом, что столбцы с одинаковыми именами связанных таблиц появятся только один раз.
Natural Join: Руководство
- Связанные таблицы имеют одну или несколько пар столбцов с одинаковыми именами.
- Столбцы должны быть одного типа данных.
- Не используйте предложение ON в естественном соединении.
Синтаксис:
ВЫБРАТЬ * ИЗ таблицы 1 ЕСТЕСТВЕННОЕ СОЕДИНЕНИЕ table2;
Пример:
Вот пример естественного соединения SQL между таблицами буксировки:
Пример таблицы: продукты
Пример таблицы: компания
Чтобы получить все уникальные столбцы из таблиц продуктов и компаний, можно использовать следующий оператор SQL:
Код SQL:
SELECT *
FROM foods
NATURAL JOIN company;
Выход:
COMPANY_ID ITEM_ID ITEM_NAME ITEM_UNIT COMPANY_NAME COMPANY_CITY ---------- ---------- ------------------------- ----- ----- ------------------------- -------------- 16 1 Chex Mix Pcs Akas Foods Дели 15 6 Cheez-It Pcs Jack Hill Ltd Лондон 15 2 BN Biscuit Pcs Jack Hill Ltd Лондон 17 3 Mighty Munch PC Гурманы. Лондон 15 4 Пот Райс шт Джек Хилл Лтд Лондон 18 5 Jaffa Cakes Pcs Заказать все Бостон
Наглядная презентация вышеперечисленного Natural Join:
Разница между естественным соединением и внутренним соединением
Между INNER JOIN и NATURAL JOIN есть одно существенное различие в количестве возвращаемых столбцов. Смотрите следующий пример в таблице компании и таблице продуктов:
Код SQL:
SELECT *
FROM company;
Выход:
COMPANY_ID COMPANY_NAME COMPANY_CITY ---------- ------------------------- --------------- 18 Заказать все Бостон 15 Jack Hill Ltd Лондон 16 Akas Foods Delhi 17 гурманов. Лондон 19 глотков Нью-Йорк
Код SQL:
SELECT *
FROM foods;
Выход:
ITEM_ID ITEM_NAME ITEM_UNIT COMPANY_ID ---------- ------------------------- ---------- ----- ----- 1 Chex Mix шт 16 6 Cheez-It PC 15 2 BN бисквитные шт 15 3 Могучий Мунк ПК 17 4 Горшок с рисом шт 15 5 Яффских пирогов, шт 18 7 соленых коктейлей шт
ВНУТРЕННЕЕ СОЕДИНЕНИЕ компании и продуктов на company_id вернет:
Код SQL:
SELECT *
FROM company
INNER JOIN foods
ON company.company_id = foods.company_id;
Выход:
COMPANY_ID COMPANY_NAME COMPANY_CITY ITEM_ID ITEM_NAME ITEM_UNIT COMPANY_ID ---------- --------------- --------------- ---------- --------------- ---------- ---------- 16 Akas Foods Delhi 1 Chex Mix PC 16 15 Jack Hill Ltd Лондон 6 Cheez-It PC 15 15 Джек Хилл Лтд. Лондон 2 BN Бисквитные шт. 15 17 гурманов. Лондон 3 Могучий Мунк ПК 17 15 Джек Хилл Лтд. Лондон 4 Горшок с рисом шт. 15 18 Заказать All Boston 5 Jaffa Cakes Pcs 18
Код SQL:
SELECT *
FROM company
NATURAL JOIN foods;
Выход:
COMPANY_ID COMPANY_NAME COMPANY_CITY ITEM_ID ITEM_NAME ITEM_UNIT ---------- --------------- --------------- ---------- --------------- ---------- 16 Akas Foods Delhi 1 шт. Chex Mix 15 Jack Hill Ltd Лондон, 6 шт. 15 Джек Хилл Лтд. Лондон 2 шт. 17 гурманов. Лондон 3 Могучих Мунк ПК 15 Jack Hill Ltd Лондон 4 шт. 18 Заказать все бостонские 5 яффских пирожных шт
ЕСТЕСТВЕННЫЕ СОЕДИНЕНИЯ: реляционные базы данных
Ключевые моменты для запоминания
Нажмите на следующее, чтобы получить презентацию слайдов -
Упражнения по SQL
- Упражнения по SQL, практика, решение
- SQL Получить данные из таблиц [33 Упражнения]
- Булевы и реляционные операторы SQL [12 упражнений]
- Подстановочные знаки SQL и специальные операторы [22 упражнения]
- Агрегатные функции SQL [25 упражнений]
- Вывод запроса форматирования SQL [10 упражнений]
- SQL-запросы к нескольким таблицам [7 упражнений]
- ФИЛЬТРАЦИЯ И СОРТИРОВКА в базе данных персонала [38 упражнений]
- SQL СОЕДИНЯЕТ
- SQL ПОДПИСИ
- SQL Union [9 упражнений]
- SQL View [16 упражнений]
- Управление учетными записями пользователей SQL [16 упражнение]
- База данных фильмов
- ОСНОВНЫЕ запросы к базе данных фильмов [10 упражнений]
- ПОДПИСКИ на фильм База данных [16 упражнений]
- ПРИСОЕДИНЯЕТСЯ к базе данных фильма [24 упражнения]
- Футбольная база
- Вступление
- ОСНОВНЫЕ запросы по футболу базы данных [29 упражнений]
- ПОДПИСКИ по футбольной базе данных [33 упражнения]
- База данных больницы
- База данных сотрудников
- ОСНОВНЫЕ запросы к базе данных сотрудников [115 упражнений]
- БРОНИРОВАНИЕ на сотрудника База данных [77 Упражнения]
- Еще не все!
Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.
Предыдущая: SQL INNER JOIN
Далее: SQL CROSS JOIN
Новый контент: Composer: менеджер зависимостей для PHP , R программирования