Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
продолжаем мучать шоп :) запрос
|
|||
|---|---|---|---|
|
#18+
Привте всем. Сложилась ситуация используется postgreSQL бд - в ней 2 таблицы shop_cats ( id SERIAL PRIMARY KEY, parent_id int4, ... ); shop_goods ( id SERIAL PRIMARY KEY, cat_id int4, //идентификатор группыв таблице shop_cats ) ТО есть есть структура дерева (категории) Например - товар имеет cat_id=5 а в таблице shop_cats такая ситуация: id | parent_id | nazvanie 1 | 0 | knigi 2 | 0 | diski 3 | 0 | fonari 4 | 1 | hudejestvennie 5 | 4 | S. King то есть в итоге получаю Knigi -> hudojestvennie->S.King так вот вопрос: как мне в итоге выбрать 5 последних (по id) товаров у окторых самая главная категория например 1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 16:18 |
|
||
|
продолжаем мучать шоп :) запрос
|
|||
|---|---|---|---|
|
#18+
Вариант 1: Написать рекурсивную функция, которая возвращает идентификаторы всех подкатегорий категории 1. Результат работы функции при-join-ить к стравочнику товаров и в полученном запросе дописать limit 5. Вариант 2: Вместо рекурсивной функции использовать подход описанный здесь http://www.rsdn.ru/article/db/db_nav1.xml ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 14:28 |
|
||
|
продолжаем мучать шоп :) запрос
|
|||
|---|---|---|---|
|
#18+
вариант 3 lib: ltree ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2006, 02:11 |
|
||
|
продолжаем мучать шоп :) запрос
|
|||
|---|---|---|---|
|
#18+
помогите написать рекурсивную функцию :) а то что-то никак понять не могу... CREATE FUNCTION getmothid(int4,int4) RETURNS int4 AS ' DECLARE current_cat ALIAS FOR $1; current_parent ALIAS FOR $2; BEGIN WHILE current_parent<>0 LOOP SELECT cat_id,parent_id FROM shop_cats WHERE parent_id=current_parent; ??? что должно быть здесь END LOOP; RETURN current_cat; END; 'LANGUAGE 'plpgsql'; идея в том, чтобы для определенной категории выдавать номер главной материнской (у главной материнской категории всегда parent_id=0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2006, 10:48 |
|
||
|
продолжаем мучать шоп :) запрос
|
|||
|---|---|---|---|
|
#18+
Нашел в реально работающей программе. Цикл без рекурсии. Возвращает всех предков. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. PS в таблице pr_categs поля caid (category_id) и prid (parent_id) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2006, 11:15 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33926073&tid=2006149]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
133ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 452ms |

| 0 / 0 |
