Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Rekord z największą wartością w danym polu
foxbond
post
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 12
Dołączył: 20.12.2009
Skąd: Siedlce

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


Przedstawię to na przykładach aby było nieco szybciej


Kod
tabela cars :
id | owner_id | vmax | [...]

|8|9|120.00
|188|9|280.00
|113|9|187.20
|187|9|190.00
|140|51|355.96
|152|51|310.00


tabela users :
id | active_car_id | [...]

9   | 113
51 | 152


Chodzi mi o uzyskanie 'id' z tabeli 'cars' gdzie 'owner_id'=users.id i vmax jest największe
Rozwiązanie może być także po stronie php

  1. SELECT cars.id AS cid, vmax, users.id AS uid FROM cars, users WHERE owner_id=users.id && (vmax jest największy)


potem chcę to wrzucić w pętlę i zrobić tak:
  1. UPDATE users SET active_car_id='.$x['cid'].' WHERE id='.$x['uid'].'



Z góry dzięki za pomoc!

P.S. Rozwiązanie nie musi być optymalne, odpalę taki skrypt może raz na miesiąc, a do przerobienia ma tylko ~600 rekordów

Ten post edytował foxbond 23.03.2011, 10:14:48
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
foxbond
post
Post #2





Grupa: Zarejestrowani
Postów: 162
Pomógł: 12
Dołączył: 20.12.2009
Skąd: Siedlce

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


Ani jedno, ani drugie nie działa.
Spróbuję trochę dokładniej opisać.

Pierwsze zapytanie powinno zwrócić:
Kod
cid | vmax | uid

188 | 280 | 9
140 | 355.96 | 51
itd. dla następnych graczy


i potem w pętli robię tak:
  1. while($x = $db->fetch_array($query))
  2. {
  3. $db->query('UPDATE {[table]} SET active_car_id='.$x['cid'].' WHERE id='.$x['uid'], 'users');
  4. }



Proszę moderatora o przeniesienie tematu do działu bazy danych->mysql
Z góry dzięki

Ten post edytował foxbond 23.03.2011, 20:15:57
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: 6.10.2025 - 18:24