grey109
Новичок
Приветствую.
Еще не могу победить один запрос. Таблица:
Сейчас я скриптом подсчитываю слова так:
Получаю верный результат:
Т.к. таблица большая, то вложенные циклы выполняются долго. Хотелось быобъять необъятное одним запросом получить аналогичный результат. Нужно что-то вроде этого, только чтобы результат был верный 
Спасибо за помощь!
Еще не могу победить один запрос. Таблица:
SQL:
CREATE TABLE IF NOT EXISTS `db` (
`id` int(8) unsigned NOT NULL,
`word` varchar(250) NOT NULL
) ENGINE=MEMORY;
INSERT INTO `db` (`id`, `word`) VALUES
(1, 'word1'),
(1, 'word1'),
(2, 'word2'),
(1, 'word3'),
(1, 'word4'),
(2, 'word4');
PHP:
$result = mysql_query("SELECT DISTINCT id FROM `db`");
while (list ($id) = mysql_fetch_row($result))
{
echo "для ID: ".$id."<br>";
$result2 = mysql_query("SELECT count(*), word FROM `db` WHERE id='".$id."' GROUP BY `word`");
while (list ($count, $word) = mysql_fetch_row($result2))
{
echo " слово: ".$word." повторяется ".$count." раз,";
}
}
для ID: 1 | слово: word1 повторяется: 2, | слово: word3 повторяется: 1 | слово: word4 повторяется: 1 |
для ID: 2 | слово: word2 повторяется: 1 | слово: word4 повторяется: 1 |
Т.к. таблица большая, то вложенные циклы выполняются долго. Хотелось бы

SQL:
SELECT id, word, count(*) FROM `db` WHERE id in (SELECT DISTINCT id FROM `db`) group by word
Последнее редактирование: