menic
4.01.2004, 01:04:03
Mam w tabeli 2 pola. id i poz.
Teraz chciałbym aby zapytanie zwrociło mi unikalne wartości z pola poz. Czyli należy użyć DISTINCT. Ale oprócz tych unikalnych pól musi mi również zwrócić liste wszystkich id. Ma ktos pomysł jak to zrobić?
Próbowałem normalnie [sql:1:6aad75497d]SELECT DISTINCT poz, id FROM tabela[/sql:1:6aad75497d]
Ale wtedy nie zwracał mi unikalnych wartości z poz :?
adwol
4.01.2004, 01:20:43
DISTINCT usuwa z wyniku powtarzające się wiersze, dlatego też jeśli selectujesz oba pola to nie będzie powtarzać się para (id, poz) ale poszczególne wartości już tak.
Da się to rozwiązać za pomocą GROUP BY, ale opisz dokładniej co chcesz uzyskać gdy dwa różne id mają tą samą wartość poz. Dowolną z występujących wartości poz, pierwsza, średnią, czy jeszcze inną?
[sql:1:bb4a9a60a5]select id, poz from tabela group by poz[/sql:1:bb4a9a60a5]
switch
4.01.2004, 01:22:41
Może zastosuj jedno z dwóch:
Kod
SELECT id, poz FROM tabela GROUP BY id
Lub
Kod
SELECT id, poz FROM tabela GROUP BY poz
P.S. jak widzę byli szybsi niz ja o dwie minuty POZDRAWIAM 8) 8) 8)
menic
4.01.2004, 01:26:50
struktura tabeli
Kod
| id | poz |
| 1 | top |
| 2 | left |
| 3 | right|
| 4 | top |
| 5 | left |
I teraz chciałbym aby mi zwróciło wszystkie id czyli 1, 2, 3, 4, 5 oraz z poz top, left, right
Co użyc aby ładnie formatowac takie tabelki
uboottd
4.01.2004, 01:28:21
A jak chcesz zwrocic inna ilosc wierszy dla roznych kolumn ?
Tak postawionego problemu jednym zapytaniem nie rozwiazesz.
A dwoma to pewnie wiesz jak.
menic
4.01.2004, 01:31:19
dwoma to nie ma problemu
A nie da sie tak żeby np. powtarzające sie rekordy zastąpił np. zerem, lub ustawił jako NULL :?:
uboottd
4.01.2004, 11:50:15
Nie. wszystkie warunki obowiazuja w obrebie wiersza jakie w jakim sa sprawdzane, wiec nijak nie stwierdzisz czy dana wartosc juz zostala wyslana do klienta czy nie.
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.