![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с union в MySQL
VictorT © (2006-04-19 10:36:00)запрос такого вида работает:
(select ...)
union
(select ...)
union
(select ...)
union
(select ...)
order by rand() limit n
добавляюю две скобки (выделены жирным) то перестаёт работать:
(select ...)
union
(select ...)
union
((select ...)
union
(select ...)
order by rand() limit n )
Т.е. мне нужна такая логика работы запроса, чтобыorder by rand() limit nбыло применено только к последним двумselect-ам.
Как добится такого результата?
VictorT (2006-04-19 12:34:00) [1]
> Плохиш ©
Спасибо огромное, по твоему способу получилось, правда пришлось ещё поиграться.
VictorT (2006-04-19 11:28:00) [2]
> Плохиш © (19.04.06 10:59) [9][Ответить]
А, теперь понял. Пробую, пока возникают проблемы с альясом полученной таблицы (в селекте выборка из нескольких таблиц)
VictorT (2006-04-19 11:06:00) [3]
> Если для всего результата UNION необходимо применить
>оператор ORDER BY
> при вникании просветляет
Вникал.
> Про объединение результатов работы нескольких команд
> UNION там ничего не говориться, так с чего оно должно
> работать?
Видимо, в этом дело :( Получается, это не решается (без дополнительных таблиц)?
Плохиш (2006-04-19 10:59:00) [4]
> не понял, что это даёт
Это даёт
> Фраза "UNION используется для объединения результатов работы
> нескольких команд SELECT в один набор результатов."
Может попробовать?
VictorT (2006-04-19 10:58:00) [5]
>(select ...)
>union
>(select ...)
>union
>select ... from ((select ...)
>union
>(select ...)
>order by rand() limit n)
>
> Может поможет?
не понял, что это даёт
Плохиш (2006-04-19 10:56:00) [6]
> Вот именно тут первым делом и прочитал. Невижу отсюда, почему
> не должен работать второй запрос.
Фраза "UNION используется для объединения результатов работы нескольких команд SELECT в один набор результатов."Про объединение результатов работы нескольких команд UNION там ничего не говориться, так с чего оно должно работать?
Desdechado (2006-04-19 10:54:00) [7]> Невижу отсюда
Там действительно не очень понятно, хотя
Если для всегорезультата UNION необходимо применить оператор ORDER BY
при вникании просветляет
VictorT (2006-04-19 10:49:00) [8]
> И ничего, надо думать, не говорит.
Говорит. Малоинформативное сообшение: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
> Документацию читать не пробовал?
Пробовал.
> Эта проблема ни какого отношения к делфи не имеет.
Я задал вопрос в конференции "базы".
> http://www.mysql.ru/docs/man/UNION.html
Вот именно тут первым делом и прочитал. Невижу отсюда, почему не должен работать второй запрос.
Плохиш (2006-04-19 10:48:00) [9]
> Desdechado © (19.04.06 10:45) [3]
> ORDER BY применяется ко всему результату UNION'ов
Ahttp://www.mysql.ru/docs/man/UNION.htmlне согласен ;-)
> VictorT © (19.04.06 10:36)
(select ...)
union
(select ...)
union
select ... from((select ...)
union
(select ...)
order by rand() limit n)
Может поможет?
Desdechado (2006-04-19 10:45:00) [10]ORDER BY применяется ко всему результату UNION'ов
Johnmen (2006-04-19 10:41:00) [11]http://www.mysql.ru/docs/man/UNION.html
Плохиш (2006-04-19 10:39:00) [12]
> добавляюю две скобки (выделены жирным) то перестаёт работать
И ничего, надо думать, не говорит. Документацию читать не пробовал? Эта проблема ни какого отношения к делфи не имеет.