кодесурса
«SQL

SQL объединяет три или более таблиц на основе родительско-дочерних отношений

script1adsense2code
script1adsense3code

На этой странице мы собираемся обсудить такое объединение, которое включает в себя участие трех таблиц, и между этими таблицами есть отношения родитель-ребенок.

Родительско-дочерние отношения между двумя таблицами могут быть созданы только в том случае, если в одной таблице находится 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

Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.

Предыдущая: объединение двух таблиц, связанных составным первичным ключом или внешней парой ключей
Далее: Использование предложения where для объединения таблиц на основе неключевых столбцов

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code