Autor | Zpráva | ||
---|---|---|---|
Bublino Profil * |
#1 · Zasláno: 19. 1. 2010, 22:41:51
Ahojte, mám dve tabuľky: konverzacie a správy. Potrebujem vytiahnuť všetky konverzácie, kde autor = 'nickname' a zároveň by som chcel mať v danom resultsete aj príslušnú najnovšiu správu(teda jej text a čas pridania...) pre každú jednotlivú konverzáciu. Samotnú najnovšiu správu by som riešil nasledovne: "SELECT s.text, s.stamp FROM spravy s WHERE konvId = ID ORDER BY cas DESC LIMIT 1"... Ako to prepojiť do subselectu s query, ktorý vytiahne konverzácie pre daného užívateľa?("SELECT k.* FROM konverzacie k WHERE autor = NICKNAME")...? Vďaka. Ešte doplním prepojenie medzi konverzacie a spravy - k.id = spravy.konvId. Ďakujem vopred :o)
|
||
123456789 Profil * |
#2 · Zasláno: 20. 1. 2010, 17:25:31
Vnitřní spojení znáš? Kde je tedy problém? Jednoduše bych dané dvě tabulky spojil vnitřním spojením, seřadil dle data a omezil klauzulí limit. V podstatě to máš hotové, jen ty tabulky spoj, pokud to neumíš, tak si o tom přečti nějaký článek na internetu, bude se ti to hodit.
|
||
Kajman_ Profil * |
#3 · Zasláno: 20. 1. 2010, 22:28:30
123456789:
Kdepak tohle nebude tak jednoduché. Bublino: Na to bude asi třeba upravit dotaz na "Nalezení řádků s maximální (minimální) hodnotou" (podle kategorií) z faq. Jen to bude trošku zkomplikované, tím spojením a také asi tím, že se může stát, že cas nemusí být jedinečný - tady by bylo asi rychlejší použít id, kdyby platilo, že větší id zprávy znamená novější zprávu. Ono by se to dalo napsat asi i přes korelovaný poddotaz, když by platilo, že se poslední zpráva bude hledat pro malou množinu konverzací. To by pak bylo snad něco blízkého jako "Nalezení posledních pěti článků z každé kategorie" |
||
Časová prodleva: 14 let
|
0