Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: bez powtórzeń DISTINCT ON (u.id ) ,*
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
gregi
jak wywietlić wszystkie pola lecz bez powtórzeń
bez gwiazdki działa poparawnie lecz mam 40 pól i niechcę ich wszystkich wpisywać dlatego gwiazdka

  1. SELECT DISTINCT ON (u.id ) u.id,* FROM uzytkownicy u LEFT JOIN uzytkownicy__xxx ujo ON u.id =ujo.id_uzytkownika WHERE ujo.id_jednostki IN ( 28,22,33,44 ) ORDER BY u.id , *
mmmmmmm
Tak się nie da... Skopałeś sobie tabelę (ID NIGDY W ŻYCIU NIE POWINNO SIĘ POWTÓRZYĆ), to teraz musisz zrobić coś takiego:
1. Dodaj sobie do tej tabeli pole typu SERIAL NOT NULL (np. unikalne_id)
2. SELECT id, Min(unikalne_id) uid FROM uzytkownicy GROUP BY id /* albo Max(unikalne_id) */
3. Wg mnie LEFT JOIN jest zbędny (zwykły JOIN starczy)
4. Ta * przy ORDER BY również

A teraz pytanie...
Załóżmy że masz tabelę:
id imie nazwisko
1 Jan Kowalski
1 Anna Nowak
1 Piotr Wójcik
To która osoba z id=1 ma pozostać?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.