Autor | Zpráva | ||
---|---|---|---|
Timy Profil |
#1 · Zasláno: 18. 5. 2009, 22:01:58
Provozuji PunBB Fórum a to má na můj vkus trochu podivnou strukturu databáze. Potřeboval bych vytáhnout všechna témata, která založil určitý uživatel. Struktura databáze je taková:
Dopracoval jsem se pouze k tomuto: select poster_id, topic_id from posts where topic_id in (SELECT topic_id FROM `posts` WHERE poster_id = 2) order by posted …což by mi snad mělo vytáhnout všechna témata, do kterých jsem přispěl. Teď bych potřeboval vyfiltrovat jen ty řádky, kde je poster_id = 2 jako první příspěvek v daném topicu (má nejmenší posted). To je alespoň má myšlenka, kterou už do SQL zapsat neumím… Nebo existuje ještě efektivnější cesta? |
||
Alphard Profil |
#2 · Zasláno: 18. 5. 2009, 22:58:30
Ahoj Timy, co to udělat obráceně, prvně si vytáhnout první příspěvky všech témat a pak filtrovat konkrétní uživatele? (jak moc to bude výkonné netuším)
Jestli dobře chápu strukturu tabulky, mohlo by jít select min(id) from posts group by topic_id A tohle přes join spojit s původní tabulkou, doplnit where a vybrat, co je potřeba. |
||
Nox Profil |
#3 · Zasláno: 18. 5. 2009, 23:01:04 · Upravil/a: Nox
Jsou skutečně v tabulce "posts" témata? Poslední řádka je topic_id, takže jsem si skoro jistý, že to bereš ze špatné tabulky, pokud chceš jen témata
A tudíž by to bylo jednoduše (nevím jestli je tam "name", prostě něco podobného) select name from topics where poster_id = 2 |
||
Alphard Profil |
#4 · Zasláno: 18. 5. 2009, 23:25:23
Nečekal jsem, že by Timy něco takového přehlédl, ale tabulka topics v punBB skutečně je (aspoň ve verzi 1.3.3) a má následující sloupce:
id int(10) unsigned poster varchar(200) subject varchar(255) posted int(10) unsigned first_post_id int(10) unsigned last_post int(10) unsigned last_post_id int(10) unsigned last_poster varchar(200) NULL num_views mediumint(8) unsigned num_replies mediumint(8) unsigned closed tinyint(1) sticky tinyint(1) moved_to int(10) unsigned NULL forum_id int(10) unsigned Jen mi tady trochu chybí poster_id |
||
Timy Profil |
#5 · Zasláno: 18. 5. 2009, 23:30:26
Alphard
„Nečekal jsem, že by Timy něco takového přehlédl, ale tabulka topics v punBB skutečně je (aspoň ve verzi 1.3.3) a má následující sloupce:“ Čekej nečekané :-). To jsem nějak přehlédl, asi i proto, že fórum defaultně neposkytuje nějakou jednoduchou možnost jak ta témata od uživatele zobrazit. Čekal jsem v tom příliš velkou zradu. Díky, dál už si seskládám v pohodě sám :-). |
||
Časová prodleva: 15 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0