BD-1st-2.4-lab4.tresc-1.1-Slajd14
Połączenia nierównościowe
Połączenia nierównościowe są połączeniami, w których warunek połączeniowy nie używa operatora równości, ale dowolny inny operator. Podobnie jak w przypadku połączenia równościowego, w wyniku połączenia nierównościowego powstaje relacja, która zawiera wszystkie atrybuty z obu relacji. Krotki są również tworzone w podobny sposób. Znajdowane są wszystkie pary krotek, z których jedna pochodzi z pierwszej łączonej relacji, a druga z drugiej i spełniają one warunki połączenia. Każda taka para jest łączona i tworzy nową krotkę w relacji powstającej w wyniku połączenia. Ogólna notacja połączeń jest taka sama jak dla połączeń równościowych (zmieniają się tylko warunki połączeniowe):
SELECT relacja1.atrybut, alias2.atrybut.........
FROM relacja1 [alias1] JOIN relacja2 [alias2] ON warunek_połączenia
WHERE ....
ORDER BY .....
Przeanalizujmy zapytanie przykładowe pokazane na slajdzie.
SELECT nazwisko, nazwa, placa_pod, placa_od, placa_do
FROM pracownicy JOIN etaty
ON placa_pod BETWEEN placa_od AND placa_do;
Zapytanie wykonuje połączenie nierównościowe relacji PRACOWNICY i ETATY. Warunkiem połączeniowym jest tutaj to, iż płaca podstawowa (atrybut PLACA_POD) powinna się mieścić w widełkach płacowych dla konkretnego etatu. Z otrzymanej w wyniku połączenia relacji wyciągane są atrybuty NAZWISKO, NAZWA, PLACA_POD, PLACA_OD i PLACA_DO i zwracane w relacji wynikowej. W zapytaniu nie poprzedzono żadnego atrybutu nazwą relacji, bądź aliasem. Jest tak dlatego, iż wszystkie atrybuty w obu relacjach mają różne nazwy, a zatem podanie samej nazwy atrybutu jest jednoznaczne.