Autor | Zpráva | ||
---|---|---|---|
llook Profil |
#1 · Zasláno: 27. 7. 2006, 11:38:30
Řeším SQL dotaz pro hledání příspěvků diskuze. Mám MySQL 4.1 a strukturu podobnou následujícímu (zjednodušeně):
CREATE TABLE `posts` ( Chci vybrat všechny příspěvky, které obsahují určité klíčové slovo v textu (post_text), snadná věc: SELECT * FROM `posts` Zároveň bych ale rád vybral i první příspěvek každého tématu, které to obsahuje v titulku (topic_title) a už jsem v koncích. Prostě potřebuju nějak rozpoznat, že příspěvek je v rámci svého tématu první, pak by šlo udělat OR `prvni` AND `topic_title` LIKE '%slovo%'. Nějaký nápad? |
||
llook Profil |
#2 · Zasláno: 27. 7. 2006, 11:49:23 · Upravil/a: llook
Teď jsem vymyslel takovouhle šílenost:
* FROM posts AS p To teda jako funguje, ale moc odvázanej z toho zrovna nejsem. Přece to musí jít jednodušeji! |
||
llook Profil |
#3 · Zasláno: 29. 7. 2006, 12:05:07
Vzpoměl jsem si, že je to v něčem dost podobné jinému problému a tak mě napadlo jednodušší řešení, pouze s jedním subquery:
JOIN Jednoduššeji to už asi nepůjde. |
||
Časová prodleva: 3 dny
|
|||
Kajman_ Profil * |
#4 · Zasláno: 1. 8. 2006, 10:20:41
Možná bych spíše použil vnořené dotazy takto...
... or p.post_id in (select min(post_id) from posts where topic_id in (select topic_id from topics where topic_title LIKE '%slovo%') group by topic_id) |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0