DISTINCT
DISTINCT służy do pobrania z tabeli unikatowych danych, które nie będą się powtarzać.
Przykład wykorzystania jest bardzo prosty.
Załóżmy, że posiadamy tabelę z klientami. Chcemy wyświetlić wszystkie miasta, z których pochodzą nasi klienci unikając przy tym powtarzających się nazw miast.
Składnia:
SELECT DISTINCT nazwa_kolumny FROM tabela;
Obok unikatowych danych można wyświetlić też inne dane, np:
SELECT DISTINCT nazwa_kolumny, nazwa_kolumny2 FROM tabela;
Efekt działania powyższego zapytania będzie taki, że zostaną wyświetlone
unikatowe dane dla nazwa_kolumny, bez względu na to, czy w kolumnie nazwa_kolumny2 dane będą się powtarzały.
Przykład użycia DISTINCT:
Tabela "users" oraz jej zawartość:
id |
Imie |
Nazwisko |
Adres |
Miasto |
Wiek |
1 |
Adam |
Kowalski |
Warszawska 10 |
Wrocław |
23 |
2 |
Monika |
Gosiewska |
Bema 2/3 |
Wrocław |
19 |
3 |
Marcin |
Jastrzębski |
Białostocka 10b/2 |
Kraków |
56 |
4 |
Paulina |
Milewska |
Jagiellońska 3 |
Lublin |
18 |
Na powyższej tabeli wykonujemy zapytania:
SELECT DISTINCT Miasto FROM users;
Rezultat wykonania zapytania:
Miasto |
Wrocław |
Kraków |
Lublin |
Jak widać zostały wyświetlone tylko nazwy miast, które się nie powtarzają.
Przykład numer 2:
Tym razem obok unikatowych miast wyświetlimy jeszcze nazwy imion.
Jak widać w każdym wierszu posiadamy unikatowe imię, mimo iż miasta się powtarzają.
SELECT DISTINCT Miasto, Imie FROM users;
Rezultat zapytania:
Miasto |
Imie |
Wrocław |
Adam |
Wrocław |
Monika |
Kraków |
Marcin |
Lublin |
Paulina |
W wyniku posiadamy powtarzające się wartości dla kolumny
Miasto, bowiem imiona nie powtarzają się.
Jeżeli dla drugiego wiersza
Wrocław/Monika posiadalibyśmy wartości
Wrocław/Adam w wyniku zapytania otrzymalibyśmy 3 rekordy, bowiem
Wrocław/Adam
powtarzałby się, a co za tym idzie, nie zostałby wyświetlony podwójnie.