SQL – wyszukiwanie rekordów mających identyczne pole

Self Join daje możliwość wyświetlenia np. działów firmy, pracujących pod tym samym adresem.

Przykład wykonano na bazie PostgreSQL.

Na początek stworzenie tabeli testowej:

CREATE TABLE testSelfJoin (id SERIAL NOT NULL, nazwa VARCHAR(50), adres VARCHAR(50) );
INSERT INTO testSelfJoin (nazwa, adres) VALUES ('Marketing', 'Warszawa');
INSERT INTO testSelfJoin (nazwa, adres) VALUES ('Administracja', 'Warszawa');
INSERT INTO testSelfJoin (nazwa, adres) VALUES ('Ksiegowosc', 'Warszawa');
INSERT INTO testSelfJoin (nazwa, adres) VALUES ('Programisci', 'Bydgoszcz');

SELECT * from testSelfJoin;

Efekt:
id nazwa adres
1 Marketing Warszawa
2 Ksiegowosc Warszawa
3 Administracja Warszawa
4 Programisci Bydgoszcz

I kluczowe zapytanie:
SELECT d1.nazwa
FROM testSelfJoin d1
JOIN testSelfJoin d2 USING (adres)
WHERE d1.nazwa NOT LIKE d2.nazwa
GROUP BY d1.nazwa;

Efekt:
nazwa
------------
Marketing
Ksiegowosc
Administracja

Przydatny wpis? Postaw mi kawę :)

0 0 votes
Article Rating
Subscribe
Powiadom o
guest
0 komentarzy
Inline Feedbacks
View all comments