SQLite NATURAL JOIN
Что такое естественное объединение в SQLite?
В SQLite NATURAL JOIN - это такое объединение, которое выполняет ту же задачу, что и INNER или LEFT JOIN, в котором предложение ON или USING ссылается на все столбцы, которые имеют общие таблицы.
Естественное объединение объединяет две таблицы по общим именам столбцов. Таким образом, используя естественное соединение, вы можете получить внутреннее соединение без необходимости добавления условия соединения.
Естественное объединение автоматически определяет общие имена столбцов в участвующих таблицах и связывает их вместе.
SQLite NATURAL JOIN структурирован таким образом, что столбцы с одинаковыми именами ассоциированных таблиц появляются только один раз.
Natural Join: Руководство
- Связанные таблицы имеют одну или несколько пар столбцов с одинаковыми именами.
- Столбцы должны быть одного типа данных.
- Не используйте предложение ON в ЕСТЕСТВЕННОМ СОЕДИНЕНИИ
Синтаксис:
ВЫБРАТЬ * ИЗ таблицы 1 ЕСТЕСТВЕННОЕ СОЕДИНЕНИЕ table2;
Наглядное представление:
Вот пример таблицы:
стол - таблица_а 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 программирования