Autor | Zpráva | ||
---|---|---|---|
Izzi Profil |
#1 · Zasláno: 5. 11. 2008, 20:27:57
Zdravim,
nemozem vyriesit tento problem ohladom fora: Mam 2 tabulky: prispevky obsahuje: uzivatel, text, datum, tema_id, id temy obsahuje: nazov, priorita, zamok, zakladatel, id Chcem zobrazit vsetky temy zoradene podla datumu z tabulky prispevky. Este dodam ze tema_id v tabulke prispevky sa rovna id v tabulke temy. Dakujem. |
||
Kajman_ Profil * |
#2 · Zasláno: 5. 11. 2008, 20:45:44
Podle kterého datumu, když jich může být k jenomu tématu víc?
|
||
Izzi Profil |
#3 · Zasláno: 5. 11. 2008, 20:53:02
ku kazdej teme su x prispevkov a kazdy prispevok ma vlastny datum
|
||
Kajman_ Profil * |
#4 · Zasláno: 5. 11. 2008, 20:56:38
Ano, proto je divné vypsat témata seřazené podle datumu, protože těch datumů je nula až moc k jednomu tématu.
|
||
Izzi Profil |
#5 · Zasláno: 5. 11. 2008, 21:02:29
oh, tak to asi vyriesim tak ze do tabulky temy si pridam stlpec posledny_prispevok a budem tam zapisovat datum posledneho prispevku...
|
||
Kajman_ Profil * |
#6 · Zasláno: 5. 11. 2008, 21:11:10
Pokud podle posledního příspěvku, tak můžete např.
select t.*, l.* from temy t left join (select tema_id, max(id) id from prispevky group by tema_id) i on t.id=i.tema_id left join prispevky l on i.id=l.id order by l.id desc Ale při více řádků se již může pro zvýšení rychlosti dotazu ukládat do tabulky temy posledny_prispevok (např. jeho id). |
||
Izzi Profil |
#7 · Zasláno: 6. 11. 2008, 18:24:25
No tak to funguje bezchybne... ale kedze ja nie som velmi zdatny v mysql tak som doteraz pouzival naraz dve selecty pre vyber uzivatela, ktory napisal posledny prispevok a pre spocitanie vsetkych prispevkov danej temy:
SELECT count(*) AS pocet_prispevkov FROM prispevky WHERE tema=$idecko SELECT uzivatel,datum FROM `prispevky` WHERE tema=$idecko ORDER BY `id` DESC LIMIT 1 Viem ze je to az hnusne.. ale pre MNA bolo hlavne, ze to fungovalo.. :-) Poradite mi este ako by som tieto dve selecty implementoval do predchadzajuceho kodu? Dakujem vlmi pekne. |
||
Kajman_ Profil * |
#8 · Zasláno: 7. 11. 2008, 08:35:06
Ale vždyť tam ten poslední příspěvek je kompletní, ne? Nejen čas, ale i uživatel. Jen stačí přidat ten count.
select t.*, l.*,i.pocet, from temy t left join (select tema_id, max(id) id, count(*) pocet from prispevky group by tema_id) i on t.id=i.tema_id left join prispevky l on i.id=l.id order by l.id desc |
||
Izzi Profil |
#9 · Zasláno: 7. 11. 2008, 14:11:00
ako vravim som v tom lama...:) ale dakujem
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0