кодесурса
«SQLite

SQLite NATURAL JOIN

script1adsense2code
script1adsense3code

Что такое естественное объединение в SQLite?

В SQLite NATURAL JOIN - это такое объединение, которое выполняет ту же задачу, что и INNER или LEFT JOIN, в котором предложение ON или USING ссылается на все столбцы, которые имеют общие таблицы.

Естественное объединение объединяет две таблицы по общим именам столбцов. Таким образом, используя естественное соединение, вы можете получить внутреннее соединение без необходимости добавления условия соединения.

Естественное объединение автоматически определяет общие имена столбцов в участвующих таблицах и связывает их вместе.

SQLite NATURAL JOIN структурирован таким образом, что столбцы с одинаковыми именами ассоциированных таблиц появляются только один раз.

Natural Join: Руководство

- Связанные таблицы имеют одну или несколько пар столбцов с одинаковыми именами.
- Столбцы должны быть одного типа данных.
- Не используйте предложение ON в ЕСТЕСТВЕННОМ СОЕДИНЕНИИ

Синтаксис:

 ВЫБРАТЬ * 
ИЗ таблицы 1 ЕСТЕСТВЕННОЕ СОЕДИНЕНИЕ table2;

Наглядное представление:

«Sqlite

Вот пример таблицы:

 стол - таблица_а
id des1 des2
---------- ---------- --------
100 desc11 desc12
101 desc21 desc22
102 desc31 desc32
таблица - table_b
id des3 des4
---------- ---------- --------
101 desc41 desc42
103 desc51 desc52
105 desc61 desc62

Пример: SQLite NATURAL JOIN

В следующем примере id - это общий столбец для таблицы и соответствующих строк на основе этого общего столбца из обеих таблиц.

SELECT * FROM table_a 
NATURAL JOIN table_b;

INNER JOIN с помощью предложения ON выполняют ту же работу. Вот следующее -

SELECT *
FROM table_a
INNER JOIN table_b
ON table_a.id=table_b.id;

Выход :

 id des1 des2 id des3 des4
---------- ---------- ---------- ---------- ---------- -------
101 desc22 desc22 101 desc41 desc42

Пример: SQLite NATURAL JOIN с предложением WHERE

Вот примеры таблиц.

 стол - врачи
доктор_ид степень доктора_имя
---------- -------------- ----------
210 Доктор Джон Линга, доктор медицины
211 Доктор Питер Холл MBBS
212 Доктор Ке Джи Доктор медицины
213 д-р Пат Фэй, доктор медицины
стол - специальность
spl_id spl_descrip doctor_id
---------- ----------- ----------
1 КАРДИО 211
2 NEURO 213
3 ARTHO 212
4 GYNO 210
стол - посещения
doctor_id имя_пользователя vdate
---------- ------------ ----------
210 Джулия Найер 2013-10-15
214 ТиДжей Олсон 2013-10-14
215 Джон Сео 2013-10-15
212 Джеймс Марлоу 2013-10-16
212 Джейсон Маллин 2013-10-12

Вот пример

SELECT doctor_id,doctor_name,degree,patient_name,vdate
FROM doctors 
NATURAL JOIN visits 
WHERE doctors.degree="MD";

Выход :

 doctor_id доктор_имя степень имя_пользователя vdate
---------- -------------- ---------- ------------ ---- ------
210 Доктор Джон Линга, доктор медицины Джулия Найер 2013-10-15
212 Доктор Ке Джи Доктор медицины Джеймс Марлоу 2013-10-16
212 Доктор Ке Джи Доктор медицины Джейсон Маллин 2013-10-12

SQLite NATURAL JOIN с использованием трех таблиц

Вот пример.

SELECT doctor_id,doctor_name,degree,spl_descrip,patient_name,vdate
FROM doctors
NATURAL JOIN speciality
NATURAL JOIN visits
WHERE doctors.degree='MD';

Выход :

 doctor_id доктор_имя степень spl_descrip имя_пользователя vdate
---------- ----------- ---------- ----------- -------- ---- ----------
212 Доктор Ке Джи Доктор медицины АРТХО Джеймс Марлоу 2013-10-16
212 Доктор Ке Джи MD ARTHO Джейсон Маллин 2013-10-12
210 Доктор Джон Ли MD GYNO Джулия Найер 2013-10-15

ЕСТЕСТВЕННЫЕ СОЕДИНЕНИЯ: SQL и другие реляционные базы данных

Предыдущая: CROSS JOIN
Далее: Подзапросы

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


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code