[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сортировка по ведомой таблице
FatCat
Шалом алейхем!

Делаю движок словаря. Есть таблица словарных статей (ведущая), и есть таблица корней, использованных в статье (ведомая).
Аналогично наверное делается для облака тегов. Ничего особенного.

Упрощенно, структура таблиц:
Таблица статей «il»
  `id` int(10) NOT NULL AUTO_INCREMENT,
`txt` text NOT NULL,
PRIMARY KEY (`id`)
Таблица корней «il_sh»
  `sid` int(11) NOT NULL AUTO_INCREMENT,
`id` int(10) NOT NULL DEFAULT '0',
`sr` text NOT NULL,
PRIMARY KEY (`sid`),

Получить словарную статью вместе с корнями не трудно: ведомая таблица джойнится к ведущей по полю id.
Всё работает, вот вчерновую: http://e-liq.su/index.php?act=module&module=hebrev

Но возникла еще одна задача.
Как можно видеть, у некоторых статей корни не указаны вовсе; при этом может быть несколько статей с одинаковым корнем.
Нужно отсортировать словарные статьи по частотности корней: сначала статьи, у которых нет ни одного корня, потом статьи к тем корням, которые встретились всего 1 раз, потом к 2 и т.д.

Я конечно сделал костылик:
			$srsz = array();
$DB->query("SELECT * FROM il_sh");
while($row = $DB->fetch_row())$srsz[ $row['sr'] ][] = $row['id'];
Получаю массив, где ключами массива становятся корни, а значениями массивы айдишников статей к этому корню.
Дальше в пхп сортируется.

Может я что-то упустил, и можно как-то решить задачу проще, как-то отсортировать средствами MySQL?

_____________
Бесплатному сыру в дырки не заглядывают...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.