Autor Zpráva
libis
Profil
Zdravím, potřebuju poradit MYSQL dotaz. Mám 2 tabulky:

AKTUALITY (id,nadpis, autor, text)
TAGY(id,aktualita,tag)

potřebuji, aby se u aktuality, zobrazily podobné aktuality na základě jejich tagu. Kazdá aktualita ma nekolik tagu (1 - 5 tagů) - ty jsou v tabulce tagy, a kazdy tag je jako novy radek. Společný identifikátor je pak sloupec aktualita. Potrebuji sestavit mysql dotaz, který by nejprve nasel co nejvice pocet shodnych tagu s jinou aktualitou a dle shodnosti vypsal napriklad 5 aktualit ( to je v ramecku vedle clanku) a seradil je dle shodnosti s temi tagy. Případně se můžou tabulky upravit, nebo nějaký jiný nápad jak zobrazit podobné aktuality?

Uvedu příklad:

Mám aktualitu a u 3 tagy ( konference, Praha, film). A u té aktuality budu mít v kolonce podobné aktuality na základě shodnosti těch tagů, tedy aby to našlo aktualitu, u které budou ty tagy taky. Tedy pokud to najde aktualitu s - Praha, Film, konference - tak aby to dalo prednost pred aktualitou jen s Praha, konference. Zkrátka aby to našlo co nejrelevantnější články.

Díky za každou reakci.


Update: trochu jsem to lépe popsal.
TomášK
Profil
Následující by mohlo fungovat, nezkoušel jsem:
SELECT 
    * 
FROM 
    aktuality 
    JOIN ( SELECT aktualita FROM tagy GROUP BY aktualita ORDER BY COUNT(*) DESC LIMIT 5)


Edit: odstraněna přebývající závorka
libis
Profil
Hodilo to chybu (Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in clanek.php on line 25)

zkusím to nějak upravit ...
libis
Profil
tak nakonec vyřešeno. díky

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0