|
|
|
| Есть такой запрос:
(SELECT
1 AS file,
id_group,
NULL AS id_article,
DATE_FORMAT(date_add, '%d.%m.%Y') AS date,
name,
description,
new
FROM articles_groups
WHERE pid_group = ".mysql_escape_string($id_group)." AND showhide = 'show'
ORDER BY pos)
UNION ALL
(SELECT
2,
id_group,
id_article,
DATE_FORMAT(datetime, '%d.%m.%Y'),
name,
description,
NULL
FROM articles
WHERE id_group = ".mysql_escape_string($id_group)." AND showhide = 'show')
ORDER BY file, new, date DESC, name
LIMIT $start, $numrec"
|
Первым запросом извлекаю группы, вторым статьи.
Хочу чтобы группы, в первую очередь были отсорированы по позиции.
И че-то эта конструкция ничего не сортирует, точнее не сортирует группы по позиции.
Подскажите кто знает... | |
|
|
|
|
|
|
|
для: tAleks
(25.03.2007 в 21:46)
| | Внешний ORDER никак не упоминает поле pos.
Более того, это поле вообще из внутреннего селекта вовне не выходит.
Вот по нему порядок и разрушается. | |
|
|
|
|
|
|
|
для: Trianon
(25.03.2007 в 21:59)
| |
(SELECT
1 AS file,
id_group,
NULL AS id_article,
DATE_FORMAT(date_add, '%d.%m.%Y') AS date,
name,
description,
new
FROM articles_groups
WHERE pid_group = ".mysql_escape_string($id_group)." AND showhide = 'show'
ORDER BY pos)
UNION ALL
(SELECT
2,
id_group,
id_article,
DATE_FORMAT(datetime, '%d.%m.%Y'),
name,
description,
NULL
FROM articles
WHERE id_group = ".mysql_escape_string($id_group)." AND showhide = 'show')
ORDER BY file, new, date DESC, name
LIMIT $start, $numrec"
|
| |
|
|
|
|
|
|
|
для: tAleks
(25.03.2007 в 23:13)
| | Это внутренний ордер первого селекта - он у Вас внутри скобок.
Внешний ордер у Вас внизу.
Говоря откровенно, смысл внутреннего ордера представляется мне сомнительным.
Насколько я представляю, order by влияет лишь на порядок представления результирующего набора.
P.S. Я умею читать.... не только жирный шрифт. | |
|
|
|
|
|
|
|
для: Trianon
(25.03.2007 в 23:55)
| | >Говоря откровенно, смысл внутреннего ордера представляется мне сомнительным.
Да просто игнорируется он и всё, а ORDER BY последнего запроса применяется к результирующей таблице, получающейся в результате объединения результирующих таблиц отдельных запросов. Круглые скобки при этом никак не должны помогать. | |
|
|
|
|
|
|
|
для: cheops
(26.03.2007 в 01:14)
| | А итог-то кокой?
Если внутренний ORDER игнорируется, то группы по позиции мне никак не отсортировать чтоли? | |
|
|
|
|
|
|
|
для: tAleks
(26.03.2007 в 09:58)
| | Внешним :) | |
|
|
|
|
|
|
|
для: Trianon
(26.03.2007 в 10:06)
| | ага, но только мне надо чтобы группы были отсортированы по позиции (pos) а статьи, по дате.
А, внешний, как я понимаю, все сортирует.... так? | |
|
|
|
|
|
|
|
для: tAleks
(26.03.2007 в 23:26)
| | > мне надо чтобы группы были отсортированы по позиции (pos) а статьи, по дате.
>А, внешний, как я понимаю, все сортирует.... так?
Внешний - он же единственный - сортирует строки результата. И ему всё равно, из чего они получены, из строк групп или строк статей.
Гляньте аналогичную тему 10100100 - ну точно та же ситуация ведь. Может это спасет? | |
|
|
|