Oracle: создание объединений с предложением ON
Как создать соединение с предложением 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 программирования