mam rekordy w następujący sposób:Jak wybrać odrębny wartości z jednej kolumny tylko
key | name
--------------
1111 | aa
1111 | bb
2222 | cc
muszę wybrać key
i name
gdy wartość key
różni. Kiedy próbowałem:
select distinct key, name from table;
mam wszystkie wiersze od zapytanie trwa odrębna dla kombinacji kolumn: key
i name
. Ale potrzebuję tylko odrębnego key
i nie zależy mi na name
. Mam dużo płyt, więc potrzebuję praktycznej metody.
Wierzę, że to jest nieważne SQL, MySQL altough akceptuje go i zwraca coś. Również to "coś" jest losową nazwą ze zbioru nazw mających ten sam klucz, dlatego wynik nie jest deterministyczny (w zależności od usunięć tabel i wstawień). To nie ma sensu i zachęca do nieporozumień wśród tych, którzy jeszcze nie rozumieją pojęcia agregacji. – colemar
Nie mogę powiedzieć, że jest nieprawidłowy. MySQL na to pozwala i możemy z niego korzystać. Zgadzam się na losowy zapis; powinna istnieć funkcja agregująca lub klauzula ORDER BY, która pomoże wybrać dokładną wartość. Będę edytować moją odpowiedź. – amk
Jest nieważny według ANSI/ISO SQL, ponieważ powoduje niejednoznaczny wynik. MySQL i SQLite są jedynymi implementacjami RDBMS, które pozwalają na tę formę, o ile wiem. Inne produkty RDBMS zwracają błąd. –