Руководство по использованию внутренних объединений в SQL для группировки данных из нескольких таблиц

Используйте SQL Inner Joins для объединения данных из двух или более таблиц

Реляционные базы данных являются стабильными для многих предприятий. Они создаются с помощью компьютерного языка, называемого язык структурированных запросов (SQL). Если вы работаете с реляционными базами данных, вы будете время от времени проверять или собирать данные, расположенные в нескольких таблицах базы данных.

Что такое оператор SQL JOIN?

Оператор SQL JOIN позволяет объединять две или более таблицы, обычно основанные на связанном столбце, так что данные обрабатываются так, как если бы они находились в одной таблице. Сами таблицы не изменяются соединением.

SQL JOIN является гибким и функциональным. Хотя существует несколько типов объединений, внутреннее объединение является одним из самых простых для понимания и использования. Посмотрите на следующие операторы SQL, которые иллюстрируют, как объединить результаты из трех разных таблиц, используя внутреннее соединение.

Пример внутреннего соединения

Например, возьмем таблицы, которые содержат водителей в одной таблице и совпадения транспортных средств во второй. Внутреннее соединение происходит, когда автомобиль и водитель находятся в одном городе. Внутреннее соединение выбирает все строки из обеих таблиц, которые содержат совпадение между столбцами местоположения.

Приведенный ниже оператор SQL объединяет данные из таблиц «Водители и транспортные средства» в тех случаях, когда водитель и транспортное средство находятся в одном городе:

 ВЫБЕРИТЕ фамилию, имя, тег 
ОТ водителей, транспортных средств
ГДЕ drivers.location = Vehicles.location

Этот запрос дает следующие результаты:

 Фамилия, имя, отчество 
-------- --------- ---
Бейкер Роланд H122JM
Смайт Майкл D824HA
Смайт Майкл P091YF
Джейкобс Авраам J291QR
Джейкобс Авраам L990MT

Теперь расширьте этот пример, включив в него третью таблицу. Чтобы включить только водителей и транспортные средства, присутствующие в местах, открытых по выходным, добавьте в запрос третью таблицу, расширив оператор JOIN следующим образом:

 ВЫБЕРИТЕ фамилию, имя, тег, open_weekends 
ОТ водителей, транспортных средств, местоположений
ГДЕ drivers.location = Vehicles.location
И Vehicles.location = location.location
И location.open_weekends = 'Да'

Этот запрос дает следующие результаты:

 Фамилия, имя, отчество open_weekends 
-------- --------- --- -------------
Бейкер Роланд H122JM да
Джейкобс Авраам J291QR да
Джейкобс Авраам L990MY да

Это мощное расширение базового оператора SQL JOIN объединяет данные сложным образом. В дополнение к объединению таблиц с внутренним объединением этот метод объединяет несколько таблиц с другими типами объединений.

Другие типы соединений

Когда у таблиц есть совпадающая запись, внутренние соединения – это путь, но иногда одна таблица не имеет связанной записи для данных, на которых построено соединение, поэтому запрос завершается ошибкой. В этом случае требуется внешнее объединение , которое включает результаты, которые существуют в одной таблице, но не имеют соответствующего соответствия в объединенной таблице.

Кроме того, вы можете использовать другой тип соединения в зависимости от обстоятельств. Эти другие типы объединений:

  • Левое внешнее соединение (левое соединение). Содержит каждую запись из левой таблицы, даже если правая таблица не имеет соответствующей записи.
  • Правое внешнее соединение (правое соединение). Возвращает всю необходимую информацию из правой таблицы, даже если в левой таблице нет совпадений.
  • Полное объединение . Выбирает все записи из двух таблиц независимо от того, имеют ли они подходящее условие соединения.
Оцените статью
Solutics.ru
Добавить комментарий