кодесурса
«SQLite

Oracle ПРАВО НАРУЖНОЕ СОЕДИНЕНИЕ

script1adsense2code
script1adsense3code

Что такое правильное внешнее объединение в Oracle?

RIGHT OUTER JOIN выполняет внутреннее объединение двух таблиц (предполагаемая таблица A, которая записывает перед ключевым словом join и таблица B, записывающая после ключевого слова join в операторе SQL) на основе условия, указанного после ключевого слова ON. Он возвращает все строки из таблицы B, а также несопоставленные строки из таблицы A. Для всех строк в B, у которых нет совпадающих строк в A, Oracle Database возвращает ноль для любых выражений списка выбора, содержащих столбцы A.

Синтаксис:

 ВЫБЕРИТЕ table1.column, table2.column
ИЗ таблицы 1
ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ table2
ON (table1.column = table2.column);

Иллюстрированная презентация Oracle Right Outer Join

«Иллюстрированные

Пример 1: правое внешнее соединение Oracle

Следующий запрос извлекает все совпадающие строки в таблице отделов и таблицу сотрудников для критериев с одинаковым значением Department_id в обеих таблицах, а также эти строки из таблицы сотрудников, даже если в таблице отделов нет совпадений.

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


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

SELECT e.first_name, e.department_id, d.department_name
FROM employees e RIGHT OUTER JOIN departments d
ON (e.department_id = d.department_id);

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

 FIRST_NAME DEPARTMENT_ID DEPARTMENT_NAME
-------------------- ------------- ----------------- -
Администрация Дженнифер 10
Пэт 20 Маркетинг
Майкл 20 Маркетинг
Сигал 30 Закупки
Карен 30 Закупки
Шелли 30 Закупки
День 30 Покупка
Тимоти 50 Доставка
............................................
............................................
Уильям 110 Бухгалтерский учет
Шелли 110 Бухгалтерский учет
                                   казначейство
                                   Корпоративный налог
                                   Контроль и Кредит
                                   Услуги для акционеров
                                   Выгоды
                                   производство
                                   строительство
.............................................								   

Пример-2:

Напишите оператор SQL, чтобы показать номер отдела, имя, количество сотрудников в каждом отделе и среднюю зарплату всех отделов, а также имена, зарплаты и рабочие места сотрудников, работающих в каждом отделе.

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


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


SELECT a.department_id, a.department_name,
count(m1.employee_id) employees,
NVL(TO_CHAR(AVG(m1.salary), '99999.99'), '- Nil -') avg_sal,
m2.first_name, m2.salary, m2.job_id
FROM departments a RIGHT OUTER JOIN employees m1
ON a.department_id = m1.department_id
RIGHT OUTER JOIN employees m2
ON a.department_id = m2.department_id
GROUP BY a.department_id, a.department_name, m2.first_name,
m2.salary,  m2.job_id
ORDER BY a.department_id, employees;

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

 DEPARTMENT_ID DEPARTMENT_NAME EMPLOYEES AVG_SAL LAST_NAME SALARY JOB_ID
------------- ------------------------------ ------- --- --------- ------------------------- ---------- --- ------
           10 Администрация 1 4400,00 кит 4400 AD_ASST
           20 Маркетинг 2 9500.00 Хартштейн 13000 MK_MAN
           20 Marketing 2 9500.00 Fay 6000 MK_REP
           30 Закупки 6 4150,00 Байда 2900 PU_CLERK
           30 Закупки 6 4150,00 Химуро 2600 PU_CLERK
           30 Закупки 6 4150,00 Тобиас 2800 PU_CLERK
           30 Закупки 6 4150.00 Raphaely 11000 PU_MAN
           30 Закупки 6 4150,00 Кольменарес 2500 PU_CLERK
           30 Закупки 6 4150,00 Khoo 3100 PU_CLERK
           40 Человеческие ресурсы 1 6500,00 Маврис 6500 HR_REP
           50 Доставка 45 3475,56 Стайлз 3200 ST_CLERK
.................................................. .................................................. ............
.................................................. .................................................. ............
          100 Финансы 6 8601,33 Sciarra 7700 FI_ACCOUNT
          100 Финансы 6 8601,33 Фавиет 9000 FI_ACCOUNT
          100 Финансы 6 8601,33 Гринберг 12008 FI_MGR
          100 Финансы 6 8601,33 Урман 7800 FI_ACCOUNT
          100 Финансы 6 8601,33 Чен 8200 FI_ACCOUNT
          100 Финансы 6 8601,33 Попп 6900 FI_ACCOUNT
          110 Бухгалтерия 2 10154.00 Гитц 8300 AC_ACCOUNT
          110 Бухгалтерский учет 2 10154,00 Хиггинс 12008 AC_MGR
                                                      0 - ноль - грант 7000 SA_REP								   

ПРАВИЛЬНОЕ СОЕДИНЕНИЕ: SQL и другие реляционные базы данных

Предыдущая: ЛЕВАЯ НАРУЖНАЯ СОЕДИНЕНИЕ
Далее: ПОЛНОЕ НАРУЖНОЕ СОЕДИНЕНИЕ

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


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code