|
|
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Имеется таблица ОБЪЕКТ_ID | ГОРОД_ID | НАЗВАНИЕ и справочник городов ГОРОД_ID, НАЗВАНИЕ т.е. каждый объект приписан к какому-либо городу для вывода анонсов нужно выбрать ОДНИМ ЗАПРОСОМ несколько записей, таким образом, чтобы по каждому городу их оказалось ровно N и они были "первые" в заданном порядке сортировки (например дата добавления). Причем если их в таблице меньше чем N - то должны быть все соответственно Сейчас я придумал так - нужно выбрать из таблицы городов все записи, потом как-то СДУБЛИРОВАТЬ их N раз и потом сделать LEFT JOIN с таблицей объектов. Вот с чем их декартово перемножить, чтобы число строк увеличилось ровно в N раз не представляю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2004, 19:20 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Ты можешь использовать временную таблицу и запихивать туда ID в несколько запросов для каждого города, а потом от туда выбиарть! А можешь сделать вычисляемое поле где будешь складывать номер города и порядковый номер записи, а потом использовать HAVING. Более подробно некогда объяснять. Завтра! Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2004, 22:06 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
идея состоит в использовании rownum декартого произведения любой таблицы на саму себя (и так нескоько раз),чтобы получить сколь-угодно большое число,затем посредством ограничения rownum <= N получить искомые строчки заданное к-во раз. Нижеприведенный код выдает "одинаковые" строчки N раз: select rownum, город_id, название города from таблица where rownum in (select rownum from таблица,таблица,таблица) and rownum <= N ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2004, 11:46 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
select rownum, город_id, название города from таблица where rownum in (select rownum from таблица,таблица,таблица) and rownum <= N разумеется для данного горада город_id=m, т.е. select rownum, город_id, название города from таблица where rownum in (select rownum from таблица,таблица,таблица) and rownum <= N and город_id= m ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2004, 11:53 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2004, 19:25 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Я не так силен в мускуле, как многоие тут. Поэтому прошу не рычать на мой вопрос... ;) Вопрос по аналогичной теме, но с более изощренной структурой базы: Есть три таблицы: категории (cat), c_id (ключ) c_name (название) ln (язык) группы (grp), g_id (ключ) g_key_c (связывание с категориями) g_name (название) ln (язык) елементы (itm) i_id (ключ) i_key_g (связывание с группами) i_name (название) Примерно так... т.е. елементы не связаны напрямую с категориями .... Ну и нужен запрос на аннонс трех последних из каждой категории для конкретного языка. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2004, 11:35 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=32787775&tid=1854553]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
27ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 265ms |
| total: | 353ms |

| 0 / 0 |
