Получение Записей с Соединениями по Неэквивалентности

Таблица JOB_GRADES определяет диапазон значений LOWEST_SAL и HIGHEST_SAL для каждого GRADE_LEVEL. Поэтому, столбец GRADE_LEVEL может использоваться, чтобы присвоить классы каждому сотруднику.

Соединения по неэквивалентности

Соединение по неэквивалентности является условием соединения, содержащим что-либо другое, а не оператор равенства. Отношение между таблицей EMPLOYEES и таблицей JOB_GRADES является примером соединения по неэквивалентности. Столбец SALARY в таблице EMPLOYEES располагается между значениями в столбцах LOWEST_SAL и HIGHEST_SAL таблицы JOB_GRADES. Поэтому, каждый сотрудник может классифицироваться на основе своей зарплаты. Отношение получается, используя оператор, который не является оператором равенства (=).

Получение Записей с Соединениями по Неэквивалентности

Получение Записей с Соединениями по Неэквивалентности

Пример на рисунке создает соединение по неэквивалентности, чтобы оценить класс зарплаты сотрудника. Зарплата должна быть между любой парой наименьшего и наибольшего значений диапазонов зарплаты.

Важно отметить, что все сотрудники появляются в точности один раз, когда этот запрос выполняется. Никакой сотрудник не повторяется в списке. Есть две причины этого факта:

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

  • Все зарплаты сотрудников лежат внутри пределов, обеспеченных таблицей классов работы. Таким образом, никакой сотрудник не зарабатывает меньше, чем самое низкое значение, содержащееся в столбце LOWEST_SAL, или больше, чем самое высокое значение, содержащееся в столбце HIGHEST_SAL.

Отметьте: Другие условия (такие как <= и >=) могут использоваться, но BETWEEN является самым простым. Не забудьте указывать низшее значение сначала и высшее значение потом при использовании условия BETWEEN. Сервер Oracle преобразовывает условие BETWEEN к паре условий AND. Поэтому использование BETWEEN не имеет никакого выигрыша в производительности, но может использоваться для логической простоты.

Табличные псевдонимы были определены в примере рисунка по причинам производительности, а не из-за возможной неоднозначности.

Далее: Резюме по подзапросам

Смотрите также
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)