Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wiersze z max wartością dla każdego id w tabeli
sobstel
post 12.03.2006, 09:44:36
Post #1





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

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


chciałbym wyciągnąć z bazy całe wiersze, w których dla danego id występuje największa wartość, czyli np. dla tebeli

Kod
name    id    value
a    1    3
b    1    5
c    1    2
d    2    1
e    2    8
f    2    4
g    1    7


chciałbym w wyniku wykonanego zapytania otrzymać

Kod
g    1    7
e    2    8


wymyśliłem zapytanie poniżej, ale zastanaiwam się czy nie dałoby sie tego zrobic jakoś zgrabniej

  1. SELECT *
  2. FROM files
  3. WHERE (id, value) IN (SELECT id, MAX(value)
  4. FROM files
  5. GROUP BY id)


Ten post edytował sopel 12.03.2006, 09:45:22


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
FiDO
post 12.03.2006, 17:52:28
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Zapraszam do lektury http://forum.php.pl/index.php?showtopic=30...ndpost&p=175959 (nie tylko tego posta, caly temat jest o bardzo podobnym do Twojego problemie)
Nie bedzie to moze zgrabniej wygladalo, ale powinno byc wydajniejsze i bez podzapytan.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
spenalzo
post 12.03.2006, 19:06:46
Post #3





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


http://dev.mysql.com/doc/refman/4.1/en/exa...-group-row.html

Czy o to chodzi?


--------------------

Go to the top of the page
+Quote Post
FiDO
post 12.03.2006, 19:40:36
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Tak, to jest to, ale ten sposob jest malowydajny co jest zreszta tam napisane.
Ten, do ktorego podalem linka jest zaczerpniety gdzies z komentarzy w manualu do mysqla i wychodzi lepiej na tle max-concat'a.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
spenalzo
post 13.03.2006, 07:15:01
Post #5





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Wiem, czytałem - linka dałem po to, jakby ktoś pytał czy to w jednym zapytaniu mo żna zrobić tongue.gif


--------------------

Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 00:49