Autor | Zpráva | ||
---|---|---|---|
Manny Profil * |
#1 · Zasláno: 28. 5. 2010, 07:33:37
Ahoj,
pořeboval bych z db udělat výpis nejnovějších záznamů, které mají stejné datum. Problém je v tom, že jich může být 2 a více. Zatím mě napadlo jen udělat dotaz na datum posledního záznamu a pak podle datumu další dotaz na všechny záznamy s tímto datumem. Přijde mi to ale zbytečný. Nebylo by něco jednodušího? |
||
Kajman_ Profil * |
#2 · Zasláno: 28. 5. 2010, 08:38:34
Mrkněte na "Nalezení řádků s maximální (minimální) hodnotou" na ten druhý příklad ve faq.
|
||
Manny Profil * |
#3 · Zasláno: 28. 5. 2010, 08:47:57
Kajman:
„Mrkněte na "Nalezení řádků s maximální (minimální) hodnotou" na ten druhý příklad ve faq.“ To bude zřejmě ono, ale asi nejsem tak dobrý v sql, abych to pochopil. A taky nevím jestli funkce max bude fungovat s datumem ve formátu %e.%c.%Y. Ale stejně díky. |
||
Kajman_ Profil * |
A taky nevím jestli funkce max bude fungovat s datumem ve formátu %e.%c.%Y.
Když datum ukládáte jako string, tak max vrátí nejvyšší string. Když byste ho ukládal jako date, vrátí nejvyšší datum. Pokud ale poslední záznam zjišťujete podle id nebo tak něco a podle toho se má hledat stejný string v kolonce datum, tak by to mohlo být takto nějak... select t1.* from tabulka t1, (select t2.datum from tabulka t2 order by id desc limit 1) t3 where t1.datum = t3.datum |
||
Manny Profil * |
#5 · Zasláno: 28. 5. 2010, 13:23:20
Kajman:
Datum je uloženo jako date fomát a hledám ho jako poslední záznam (desc) . Už jsem to radši udělal to svou původní komplikovanou cestou. Ale jsou to 2 dotazy do DB :-(( V tom vašem sql nerozumím těm t1., t2. Tak daleko ještě nejsem:-) |
||
Kajman_ Profil * |
#6 · Zasláno: 28. 5. 2010, 14:21:41
t1, t2 a t3 jsou tady jako aliasy tabulek. Někdy to zkracuje zápis, někdy to pak umožní vícekráte použít tu samou tabulku v jednom dotaze. Mělo by stačit nahradit slovo "tabulka" za název Vaší tabulky a slova "id","datum" za názvy sloupců v oné tabulce.
|
||
Časová prodleva: 14 let
|
0