Форум сетевых администраторов
Показаны 5 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- MySQL (http://netadmin.ws/forum/forumdisplay.php?forumid=40)
-- Создать запрос... (http://netadmin.ws/forum/showthread.php?threadid=8939)


Помещено Minister 16-06-2004 в 07:46:

Создать запрос...

Есть две таблицы bd и bd_category

Таблица bd содержит:

code:

+--------+--------+--------+--------+--------+
|   id   |  title | catid  | views  |  ....  |
+--------+--------+--------+--------+--------+
|    1   |  Test  |   3    |   100  |  ....  |
+--------+--------+--------+--------+--------+
|    2   |  Test2 |   2    |   50   |  ....  |
+--------+--------+--------+--------+--------+
|    3   |  Test3 |   3    |   130  |  ....  |
+--------+--------+--------+--------+--------+



Таблица bd_category содержит:

code:
+--------+--------+--------+
| catid  |titleсat|parentid|
+--------+--------+--------+
|    1   | TestCat|   -1   |
+--------+--------+--------+
|    2   |TestCat1|   1    |
+--------+--------+--------+
|    3   |TestCat2|   1    |
+--------+--------+--------+



views - число просмотров страницы
catid - идентификатор категории-потомка из bd_category
parentid - идентификатор родительской категории
Как видно из примера 2 записи из bd относятся к двум разным категориям-потомкам
Естественно, к каждой из категорий-потомков может относиться много записей из bd.
Мне нужно вывести всего 10 записей из bd имеющих отношение к родительской категории (в примере это catid = 1), отсортировав по views. Т.е. нужно выходить на родительскую категорию через категории-потомки.
Трудность возникает как раз в том, как вывести под родительской категорией все записи, которые относятся к категориям-потомкам.
Вот, не знаю как понятнее еще свормировать вопрос. В итоге я хочу получить типа этого:


code:
TestCat - родительская категория
Test3   | 
Test    | - записи из bd, отсортированные по views
Test2   |



Надеюсь, так понятнее будет. Прошу помочь любым способом.
У меня был вариант сделать еще одну колонку в bd (parentid), куда записывать id родительской категории.
Может можно как-то лучше это сделать? Очень важна скорость работы, т.к. записей в bd очень много (~20-50 тыс.).

__________________
Gets.ru - Компьютерный Портал


Помещено he][es 16-06-2004 в 11:05:

Minister посмотри тут: http://detail.phpclub.net/article/db_tree, может поможет...

__________________
Админ - вождь Апачей...


Помещено Minister 16-06-2004 в 11:37:

Спасибо, но все равно вопрос остается пока в силе. Так что приветствуются любые советы.

__________________
Gets.ru - Компьютерный Портал


Помещено whisk 19-06-2004 в 21:26:

Честно, я не понял, как у тебя эти таблицы связаны =) Где в db связь с db_category?


Помещено Minister 20-06-2004 в 00:12:

whisk
Написано ведь "catid - идентификатор категории-потомка из bd_category", т.е. эти две базы связаны по catid

Вообще-м это уже не важно. Я составил следующий запрос:

$b = 1;

SELECT vbd.*
FROM bd AS vbd
LEFT JOIN bd_category AS bc ON (bc.parentid=vbd.catid)
WHERE vbd.catid='".$b."'
ORDER BY vbd.views DESC
LIMIT 10

Ð_тот запрос работает, только выводит по 10 записей из каждой подкатегории. А мне нужно чтобы он вывел ТОЛЬКО ВСЕГО 10 записей из всех подкатегорий. Вот как это сделать не могу понять. Чем можете помочь?

__________________
Gets.ru - Компьютерный Портал


Формат времени GMT. Текущее время 10:00.
Показаны 5 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.