Вывод списка наиболее часто встречаемых слов

Sandr

Новичок
Вывод списка наиболее часто встречаемых слов

Есть две таблицы-
1- ключевые слова
wordId - INT(10)
word -varchar(255)
UNIQUE KEY `word` (`word`)

2 - связи ключевых слов с объектами
itemId - INT(10)
wordId - INT(10)
UNIQUE KEY `word_link_id` (`wordId `,`itemId `)

нужно получить некое количество(n) наиболее часто встречаемых слов
с сортировкой по ниспадающей

SELECT wordId FROM keywords ORDER BY ???? LIMIT 0,n

Подскажите запрос
 

DiMA

php.spb.ru
Команда форума
покажи все опробованные тобой варианты
 

Sandr

Новичок
да я голову сломал - пока даже не понимаю где копать

наверно нужен подзапрос который должен получить список wordId из табл связей и сгруппировав по wordId
но блин не понимаю как посчитать количество сгруппированных ids
 

DiMA

php.spb.ru
Команда форума
начни с простого.. один запрос по одной таблице (второй) с группировкой и сортировкой
 

Sandr

Новичок
вот на этом мысль и останавливается
SELECT group_concat(wordId) AS wordId FROM words_links ORDER BY ??
 

Potaevsky

Новичок
SELECT A.word, A.wordId, (SELECT count(*) FROM 2 AS B WHERE B.wordId=A.wordId ) as `count` FROM 1 AS A ORDER BY `count` DESC LIMIT <скока тебе нада>

Получаешь самые распространенные слова

-~{}~ 23.03.09 15:08:

Кстати, если база слов очень большая, то лучше закешировать количество - т.е. дополнить таблицу 1 полем `count` - ну а его уже менять при добавлении/удалении связок в таблице 2. Это если запрос сей будет педалить
 
Сверху