Autor | Zpráva | ||
---|---|---|---|
Jan Tvrdík Profil |
#1 · Zasláno: 9. 9. 2008, 17:59:43 · Upravil/a: Jan Tvrdík
Mám následující tabulku:
+-------+---------+-------+ | kdo | co | kolik | +-------+---------+-------+ | Karel | hrušky | 23 | | Karel | jablka | 65 | | Pepa | hrušky | 78 | | Pepa | jablka | 15 | +-------+---------+-------+ Jak jedním dotazem zjistím, kdo nasbíral nejvíc hrušek a kdo nejvíc jablek? |
||
Pesulap Profil |
#2 · Zasláno: 9. 9. 2008, 18:06:25
SELECT * FROM nazev_tabulky WHERE co="hrusky" ORDER BY kolik DESC
SELECT * FROM nazev_tabulky WHERE co="jablka" ORDER BY kolik DESC |
||
Jan Tvrdík Profil |
#3 · Zasláno: 9. 9. 2008, 18:08:03 · Upravil/a: Jan Tvrdík
Pesulap
Díky za radu, ale myslel jsem jedním dotazem (doplněno do úvodního postu). |
||
japlavaren Profil |
#4 · Zasláno: 9. 9. 2008, 18:58:03
$q="SELECT kdo FROM tabulka WHERE co='hrusky' ORDER BY kolik DESC LIMIT 1 UNION ALL SELECT kdo FROM tabulka WHERE co='jablka' ORDER BY kolik DESC LIMIT 1"; $mq=mysql_query($q); list($hrusky)=mysql_fetch_row($mq); list($jablka)=mysql_fetch_row($mq); a mas to na jeden dotaz :) |
||
Jan Tvrdík Profil |
#5 · Zasláno: 9. 9. 2008, 19:02:55
japlavaren
Myslel jsem nějakou normální metodou :), ale podle toho, co zde vidím to asi nejde. |
||
DoubleThink Profil * |
#6 · Zasláno: 9. 9. 2008, 19:35:29 · Upravil/a: DoubleThink
Šlo by něco ve smyslu:
SELECT * FROM tabulka GROUP BY co ORDER BY kolik DESC |
||
Kajman_ Profil * |
#7 · Zasláno: 9. 9. 2008, 20:03:30
Nebo něco na způsob
select * from tabulka where (co,kolik) in (select co, max(kolik) from tabulka group by co) |
||
japlavaren Profil |
#8 · Zasláno: 9. 9. 2008, 21:43:35
Jan Tvrdík - to je normalna metoda na jeden dotaz..
|
||
Kajman_ Profil * |
#9 · Zasláno: 9. 9. 2008, 22:29:38
japlavaren
Pravda používá se to. Tipnul, bych že je ty selecty nutné zazávorkovat, jinak se poslední limit stáhne na všechen union. Nepříjemné je, když jsou dva stejně čilí zběrači, pak tam je jen jeden (což ale ze zadání není jasné, jak se má zachovat). Další možnou nepříjemností je nárust druhů ovoce. |
||
Jan Tvrdík Profil |
#10 · Zasláno: 11. 9. 2008, 15:29:50 · Upravil/a: Jan Tvrdík
DoubleThink
„SELECT * FROM tabulka GROUP BY co ORDER BY kolik DESC“ Tak vypadala moje první idea. Bohužel nefunguje. MySQL se bohužel chová dost nelogicky. Kajman_ „Nebo něco na způsob“ „select * from tabulka where (co,kolik) in (select co, max(kolik) from tabulka group by co)“ Blahopřeji a děkuji. Tohle je to co jsem hledat. |
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0