Реляционные базы данных являются стабильной работой многих предприятий. Они созданы с помощью компьютерного языка, называемого языком структурированных запросов (SQL). Если вы работаете с реляционными базы данных, вы иногда будете изучать или собирать данные, которые находятся более чем в одной таблице базы данных.
Что такое инструкция SQL JOIN?
Оператор SQL JOIN позволяет объединить две или более таблиц, обычно на основе связанного столбца, так что данные обрабатываются так, как если бы они находились в одной таблице. Сами таблицы не изменяются объединением.
SQL ПРИСОЕДИНЯТЬСЯ гибкий и функциональный. Хотя существует несколько типов объединений, внутреннее объединение является одним из самых простых для понимания и использования. Взгляните на следующие операторы SQL, которые иллюстрируют, как объединить результаты из трех разных таблиц с помощью внутреннего соединения.
Пример внутреннего соединения
Например, возьмем таблицы, содержащие драйверы в одной таблице и матчапы техники во второй. Внутреннее соединение происходит, когда автомобиль и водитель находятся в одном городе. Внутреннее соединение выбирает все строки из обеих таблиц, которые содержат совпадение между столбцами местоположения.
Приведенный ниже оператор SQL объединяет данные из таблиц Drivers и Vehicles в случаях, когда водитель и транспортное средство находятся в одном городе:
ВЫБЕРИТЕ фамилию, имя, тег
ОТ водителей, транспортных средств
ГДЕ drivers.location = cars.location
Этот запрос дает следующие результаты:
фамилия имя тег
Бейкер Роланд H122JM
Смайт Майкл D824HA
Смайт Майкл P091YF
Джейкобс Абрахам J291QR
Джейкобс Абрахам L990MT
Теперь расширите этот пример, включив в него третью таблицу. Чтобы включить только водителей и транспортные средства, присутствующие в местах, открытых в выходные дни, добавьте в запрос третью таблицу, расширив оператор JOIN следующим образом:
ВЫБЕРИТЕ фамилию, имя, тег, open_weekends
ОТ водителей, транспортных средств, локаций
ГДЕ drivers.location = cars.location
И cars.location = locations.location
И местоположения.open_weekends = 'Да'
Этот запрос дает следующие результаты:
фамилия имя тега open_weekends
Baker Roland H122JM да
Джейкобс Абрахам J291QR да
Джейкобс Абрахам L990MY да
Это мощное расширение к базовому оператору SQL JOIN сложным образом объединяет данные. Помимо объединения таблиц с помощью внутреннего соединения, этот метод объединяет несколько таблиц с другими типами объединений.
Другие типы соединений
Когда в таблицах есть соответствующая запись, можно использовать внутренние объединения, но иногда одна таблица не имеет связанной записи для данных, на которых построено соединение, поэтому запрос не выполняется. Этот случай требует внешнее соединение, который включает результаты, которые существуют в одной таблице, но не имеют соответствующего соответствия в объединенной таблице.
Кроме того, вы можете выбрать другой тип соединения, в зависимости от обстоятельств. Вот эти другие типы соединений:
- Левое внешнее соединение (левое соединение): содержит все записи из левой таблицы, даже если в правой таблице нет соответствующей записи.
- Правое внешнее соединение (правое соединение): возвращает всю необходимую информацию из правой таблицы, даже если в левой таблице нет соответствия.
- Полное присоединение: Выбирает все записи из двух таблиц независимо от того, соответствуют ли они условию соединения.