реляции и лимит для них

GrayHound

Новичок
реляции и лимит для них

Ситуация простая.
Дана таблица каталога с полями id, title к примеру и
допустим дана таблица позиций с полями id, cat_id, title.

Между позицией и каталогом реляция `id` <=> `cat_id`

Дано 1 каталог и 50 позиции.

Нужно вытащить 1 каталог с релятивными позициями, но не всеми 50, а допустим только 20. Ни по парамтрам и никак не иначе - только limit.

Такое вообще возможно? Не на MySQL так может в каких других видах БД?
 

Фанат

oncle terrible
Команда форума
в оракле можно сделать что-то вроде
select * from table connect by cat_id

А в мускуле есть варианты. самый простой - запросить все 50 и выбрать нужные в скрипте.

для других надо конкретизировать задачу. конкретно конкретизировать
 

GrayHound

Новичок
***** то что выбрать в скрипте - это ясно. Но что если нужно выбрать 100 из 10000?

Хотя для этого нужно думаю уже не MySQL никак *ушёл читать мануалы оракла*
 

Фанат

oncle terrible
Команда форума
MySQL справится и со 100000
я, кажется, сказал - есть варианты.
и еще я сказал, что надо конкретизировать задачу.
не "допустим" или "если нужно", а конкретно описать базу и задачу.
 

GrayHound

Новичок
*****. Конкретно. Есть список новостей и списко разделов новостей. Нужно вытащить 3 раздела с последними 3мя новостями. Вытаскивать 100 или 200 ради трёх - тяжело. Выход только один - без реляций. Тогда установка реляций теряет почти любой смысл.

Итого - 4 запроса (1 на разделы, 3 на новости). Кеширивание - да вариант, но я уже начал становится ленивым программистом, поэтому проще вытащить всё одним и закешировать его на время N.

Как вариант можно обратную реляцую, т.е. мы получаем не
раздел -> новость1, новость2, новость3, а
новость1->раздел
новость2->раздел

Но это 3 запросы. Одним меньше. А можно то и одним
 

Фанат

oncle terrible
Команда форума
писец.
туши свет, сливай воду.
я думал, там действительно каталог, дерево
чтобы сэкономить два запроса чувак пошел учить оракл.

иди, учи. это самое умное, что ты можешь сделать в такой ситуации, ленивый программист
 

GrayHound

Новичок
Всё пиздец. Больше я на этот форум ни нагой. *****, вы мудак. Учтите.
 
Сверху