Соединение по условию «больше чем»

Выдать все комбинации информации о поставщиках и деталях, таких, что город местонахождения поставщика следует за городом, где хранится деталь, в алфавитном порядке:

SELECT S.*, P.*

FROM S.P

WHERE S.ГOPOД > Р.ГОРОД;

Получим в результате следующую таблицу 3.

Таблица 3

НОМЕР_ПОСТАВЩИКА ФАМИЛИЯ СОСТОЯНИЕ S.ГОРОД
S2 S2 S2 S3 S3 S3 Джонс Джонс Джонс Блейк Блейк Блейк   Париж Париж Париж Париж Париж Париж

Продолжение табл. 3

НОМЕР_ДЕТАЛИ НАЗВАНИЕ ЦВЕТ ВЕС Р.ГОРОД
P1 Р4 Р6 Р1 Р4 Р6 Гайка Винт Блюм Гайка Винт Блюм Красный Красный Красный Красный Красный Красный   Лондон Лондон Лондон Лондон Лондон Лондон

СОЕДИНЕНИЕ С ДОПОЛНИТЕЛЬНЫМ УСЛОВИЕМ

Выдать все комбинации информации о поставщиках и информации о деталях, такие, что рассматриваемые поставщики и детали «соразмещены». Опустить при этом поставщиков с состоянием, равным 20:

SELECT S.*, Р.*

FROM S,P

WHERE S.ГОРОД = Р.ГОРОД

AND S.СОСТОЯНИЕ = 20;

Результат представлен в таблице 4.

Таблица 4

НОМЕР_ПОСТАВЩИКА ФАМИЛИЯ СОСТОЯНИЕ S.ГОРОД
S2 S2 S3 S3 Джонс Джонс Блейк Блейк   Париж Париж Париж Париж

Продолжение табл. 4

НОМЕР_ДЕТАЛИ НАЗВАНИЕ ЦВЕТ ВЕС Р.ГОРОД
P2 Р5 Р2 Р5 Болт Кулачок Болт Кулачок Зеленый Голубой Зеленый Голубой   Париж Париж Париж Париж

ВЫБОРКА СПЕЦИФИЦИРОВАННЫХ ИЗ СОЕДИНЕНИЯ

Выдать все комбинации номеров поставщиков и номеров деталей, таких, что поставщик и деталь соразмещены:

SELECT S.НОМЕР_ПОСТАВЩИКА, Р.НОМЕР_ДЕТАЛИ

FROM S, P

WHERE S.ГОРОД = Р.ГОРОД;

Имеем результат:

НОМЕР_ПОСТАВЩИКА НОМЕР_ДЕТАЛИ
S1 S1 S1 S2 S2 S3 S3 S4 S4 S4 P1 P4 P6 P2 P5 P2 P5 P1 P4 P6

СОЕДИНЕНИЕ ТРЕХ ТАБЛИЦ

Выдать все пары названий городов, таких, что какой-либо поставщик, находящийся в первом из этих городов, поставляет некоторую деталь, хранимую во втором городе. Например, поставщик Sl поставляет деталь Р1. Поставщик Sl находится в Лондоне, а деталь Р1 хранится также в Лондоне. Поэтому пара городов «Лондон, Лондон» — это пара городов, которая содержится в результате.

SELECT DISTINCT S.ГOPOД, Р.ГОРОД

FROM S, SP, P

WHERE S.HOMEP_ПОСТАВЩИКА = SP.HOMEP_ПОСТАВЩИКА

AND SP.HOMEP_ДЕТАЛИ = Р.НОМЕР_ДЕТАЛИ;

Получаем результат:

S.ГOPOД Р.ГОРОД
Лондон Лондон Лондон Париж Париж Лондон Париж Рим Лондон Париж

В качестве упражнения читателю следует установить, какие конкретно комбинации поставщик — деталь порождают каждую из строк результата в этом примере.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: