кодесурса
«SQLite

Oracle: создание объединений с предложением ON

script1adsense2code
script1adsense3code

Как создать соединение с предложением ON в Oracle?

  • Условие соединения для естественного соединения - это в основном эквивалент идентичных имен столбцов.
  • Предложение ON может использоваться для объединения столбцов с разными именами.
  • Используйте предложение ON, чтобы указать условия или указать столбцы для присоединения.
  • Условие соединения отделено от других условий поиска.
  • Это самая простая и широко используемая форма предложений объединения.

Синтаксис ::

 ВЫБЕРИТЕ table1.column, table2.column
ИЗ таблицы 1
ПРИСОЕДИНЯЙТЕСЬ к table2 ON (table1.column_name = table2.column_name);

Объяснение:

  • table1, table2 - это имена таблиц, участвующих в объединении.
  • Синтаксис естественного соединения содержит ключевое слово NATURAL, а синтаксис JOIN… ON - нет.
  • Ошибка возникает, если ключевые слова NATURAL и ON встречаются в одном и том же предложении соединения.
  • Предложение JOIN… ON позволяет указывать один или несколько столбцов equijoin в скобках после ключевого слова ON.
  • Столбцы equijoin полностью квалифицируются как table1.column_name = table2.column_name (опционально указывается в скобках) после ключевого слова ON.

Пример: создание объединений с предложением ON в Oracle

В этом примере столбец employee_id в таблице emplolyees и Department_id в таблице отделов объединяются с помощью предложения ON. Если идентификатор employee_id в таблице EMPLOYEES равен идентификатору отдела в таблице DEPARTMENTS, строка возвращается. Псевдоним таблицы необходим для определения подходящих имен столбцов.

Пример таблицы: сотрудники


Пример таблицы: отдел


Код SQL:

SQL> SELECT e.employee_id, e.last_name, e.department_id,
2  d.department_id, d.location_id
3  from departments d
4  join employees e on (e.employee_id=d.department_id);

Пример вывода:

 EMPLOYEE_ID LAST_NAME DEPARTMENT_ID DEPARTMENT_ID LOCATION_ID
----------- ------------------------- ------------- - ------------ -----------
        100 Кинг 90 100 1700
        110 Чен 100 110 1700
        120 Weiss 50 120 1700
        130 Аткинсон 50 130 1700
        140 Патель 50 140 1700
        150 Такер 80 150 1700
        160 Доран 80 160 1700
        170 Fox 80 170 1700
        180 Тейлор 50 180 1700
        190 ворот 50 190 1700
        200 китов 10 200 1700
11 строк выбрано.

Использование псевдонимов таблиц с предложением USING

Пример: создание объединений с предложением ON в Oracle

Пример: создание объединений с предложением ON и дополнительными условиями

Вы можете использовать предложение WHERE или предложение AND, чтобы применить дополнительные условия. Следующий пример идентичен предыдущему, но с дополнительным условием ID менеджера, равным 149.

Код SQL:

SQL> SELECT e.employee_id, e.last_name,
2  d.department_id, d.location_id
3  from departments d
4  join employees e 
5  on (e.employee_id=d.department_id)
6  AND e.manager_id = 108;

Пример вывода:

 EMPLOYEE_ID LAST_NAME DEPARTMENT_ID LOCATION_ID
----------- ------------------------- ------------- - ----------
        110 Чен 110 1700
 

Oracle: создание трехсторонних объединений с предложением ON

Трехстороннее соединение создается с тремя таблицами. Это совместимый с SQL: 1999 синтаксис, в котором объединения выполняются слева направо. В следующем примере:

  • Первое объединение, которое должно быть выполнено, - СОЕДИНЕНИЯ СОТРУДНИКОВ СОТРУДНИКОВ.
  • Первое условие соединения может ссылаться на столбцы в EMPLOYEES и DEPARTMENTS, но не может ссылаться на столбцы в третьей таблице, т.е. LOCATIONS.
  • Второе условие соединения может ссылаться на столбцы из всех трех таблиц.

Пример таблицы: сотрудники


Пример таблицы: отдел

Пример таблицы: расположение


Код SQL:

SQL> SELECT e.last_name,e.employee_id, l.city, d.department_name
2  FROM employees e
3  JOIN departments d
4  USING (department_id)
5  JOIN locations l
6  USING (location_id);

Пример вывода:

 LAST_NAME EMPLOYEE_ID CITY DEPARTMENT_ID
НАЗВАНИЕ
------------------------- ----------- -------------- ------ -----------
Кинг 100 Сиэтл Исполнительный
Кочхар 101 Сиэтл Исполнительный
Де Хаан 102 Сиэтл Исполнительный
Hunold 103 Southlake IT
Эрнст 104 Саутлейк ИТ
Остин 105 Саутлейк ИТ
Pataballa 106 Southlake IT
Лоренц 107 Саутлейк ИТ
Гринберг 108 Сиэтл Финанс
Фавиет 109 Сиэтл Финанс
Чен 110 Сиэтл Финанс
Sciarra 111 Сиэтл Финанс
Урман 112 Сиэтл Финанс
Попп 113 Сиэтл Финанс
....
 

Выводы указанного оператора SQL, показанного здесь, взяты с использованием Oracle Database 11g Express Edition.

Предыдущая: ЕСТЕСТВЕННЫЕ СОЕДИНЕНИЯ
Далее: ПРИСОЕДИНЯЕТСЯ С УСЛОВИЯМИ ИСПОЛЬЗОВАНИЯ

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


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code