Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [sql] Wybor tylko unikalnych wartosci
ronin
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.07.2008

Ostrzeżenie: (0%)
-----


Witam,
Mam problem z pewnym zapytaniem. Mam tabele zawierajaca kilka kolumn, z czego w jednej kolumnie wiersze sie powtarzaja.
Chcialbym aby zapytanie zwrocilo mi tylko po jednym wierszu dla kazdej wartosci. Bardzo prosze o pomoc.

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Pytalem przeciez, na jakiek podstawie SQL ma wiedziec ktore kolmny_z_niepowtarzajacymi_sie_wartosciami ma dobrac.

Mozesz zrobic tak: select distinct kolumna_z_powtorzeniami...; i do tego dojoinwac ta tabele raz jeszcze, ew. wrzucic to w podzapytanie; ALE i tak musisz jakos wybrac ktory rekord zwrocic dla danej kolumna_z_powtorzeniami


  1. SELECT r.id, r.code, temp.value FROM repeats r
  2. JOIN ( SELECT r2.id, r2.value FROM repeats r2 ORDER BY r2.value DESC )AS temp ON temp.id = r.id
  3. GROUP BY r.code


ORDER BY r2.value DESC -- tu ustalasz ktory wiersz dostaniesz dla danej wartosci ktora DISTINCtujesz


edit:
no i SQLki do bazki:

  1. CREATE TABLE `test`.`repeats` (
  2. `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  3. `code` INT NOT NULL ,
  4. `value` INT NOT NULL ,
  5. UNIQUE (
  6. `value`
  7. )
  8. ) ENGINE = MYISAM;
  9.  
  10. INSERT INTO `test`.`repeats` (
  11. `id` ,
  12. `code` ,
  13. `value`
  14. )
  15. VALUES (
  16. NULL , '1', '1'
  17. ), (
  18. NULL , '1', '2'
  19. ), (
  20. NULL , '1', '3'
  21. ), (
  22. NULL , '2', '4'
  23. ), (
  24. NULL , '2', '5'
  25. );


Ten post edytował dr_bonzo 13.07.2008, 20:27:13
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 05:01