SQL объединяет три или более таблиц на основе родительско-дочерних отношений
На этой странице мы собираемся обсудить такое объединение, которое включает в себя участие трех таблиц, и между этими таблицами есть отношения родитель-ребенок.
Родительско-дочерние отношения между двумя таблицами могут быть созданы только в том случае, если в одной таблице находится PRIMARY KEY, а в другой - FOREIGN KEY.
Синтаксическая диаграмма - SQL JOIN из трех таблиц
Пример: SQL JOIN - три или более таблиц
Вот пример SQL-соединения трех таблиц с условиями.
Пример таблицы: агенты
Образец таблицы: клиент
Пример таблицы: заказы
Чтобы получить столбцы ord_num и cust_code из таблицы 'orders' и 'cust_name' и 'cust_city' из таблицы 'customer' и столбца 'agent_code' из таблицы 'агенты' после объединения, со следующими условиями:
1. «a», «b» и «c» - псевдонимы таблиц «заказы», «клиент» и «агенты»,
2. таблицы 'orders' и 'customer' являются дочерней таблицей таблицы 'agent', потому что 'agent_code' является первичным ключом в таблице 'agent' и внешним ключом в таблицах 'customer' и 'orders',
3. таблица 'orders' является дочерней таблицей таблицы 'customer', потому что 'cust_code' является первичным ключом в таблице 'customer' и внешним ключом в таблице 'orders',
4. 'cust_city' и 'working_area' таблицы 'customer' и 'agent' должны быть одинаковыми,
5. 'cust_code' таблицы 'orders' и 'customer' должны быть одинаковыми,
6. 'agent_code' таблицы 'orders' и 'agent' должен совпадать,
можно использовать следующий оператор SQL:
Код SQL:
SELECT a.ord_num,b.cust_name,a.cust_code,
c.agent_code,b.cust_city
FROM agents c,customer b,orders a
WHERE b.cust_city=c.working_area
AND a.cust_code=b.cust_code
AND a.agent_code=c.agent_code;
Выход:
ORD_NUM CUST_NAME CUST_CODE AGENT_CODE CUST_CITY ---------- ---------------------------------------- ---------- ---------- ----------- 200114 Болт C00002 A008 Нью-Йорк 200122 Martin C00003 A004 Torento 200118 Karl C00023 A006 Лондон 200119 Раманатан C00007 A010 Ченнаи 200121 Каролина С00008 А004 Торенто 200130 Ravindran C00025 A011 Бангалор 200134 Winston C00004 A005 Брисбан 200108 Каролина C00008 A004 Торенто 200103 Домкраты C00021 A005 Брисбан 200105 Ravindran C00025 A011 Бангалор 200109 Сундария C00011 A010 Ченнаи 200101 Micheal C00001 A008 Нью-Йорк 200111 Albert C00020 A008 Нью-Йорк 200104 Shilton C00006 A004 Torento 200106 Sasikant C00005 A002 Мумбаи 200125 Fleming C00018 A005 Брисбан 200117 Rangarappa C00014 A001 Бангалор 200123 Avinash C00022 A002 Мумбаи 200120 Рамеш С00009 А002 Мумбаи 200116 Charles C00010 A009 Hampshair 200124 Сринивас C00017 A007 Бангалор 200126 Avinash C00022 A002 Мумбаи ............. .............
Смотрите нашу базу данных моделей
Вот новый документ, который представляет собой набор вопросов с короткими и простыми ответами, полезными для изучения SQL, а также для интервью.
Упражнения по 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.
Предыдущая: объединение двух таблиц, связанных составным первичным ключом или внешней парой ключей
Далее: Использование предложения where для объединения таблиц на основе неключевых столбцов
Новый контент: Composer: менеджер зависимостей для PHP , R программирования