Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.11;
Скачать: CL | DM;

Вниз

Проблема с union в MySQL   Найти похожие ветки 

 
VictorT ©   (2006-04-19 10:36) [0]

запрос такого вида работает:
(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-ам.
Как добится такого результата?


 
Плохиш ©   (2006-04-19 10:39) [1]


> добавляюю две скобки (выделены жирным) то перестаёт работать

И ничего, надо думать, не говорит. Документацию читать не пробовал? Эта проблема ни какого отношения к делфи не имеет.


 
Johnmen ©   (2006-04-19 10:41) [2]

http://www.mysql.ru/docs/man/UNION.html


 
Desdechado ©   (2006-04-19 10:45) [3]

ORDER BY применяется ко всему результату UNION"ов


 
Плохиш ©   (2006-04-19 10:48) [4]


> Desdechado ©   (19.04.06 10:45) [3]
> ORDER BY применяется ко всему результату UNION"ов

A http://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)

Может поможет?


 
VictorT ©   (2006-04-19 10:49) [5]


> И ничего, надо думать, не говорит.
Говорит. Малоинформативное сообшение:  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
Вот именно тут первым делом и прочитал. Невижу отсюда, почему не должен работать второй запрос.


 
Desdechado ©   (2006-04-19 10:54) [6]

> Невижу отсюда
Там действительно не очень понятно, хотя
Если для всего результата UNION необходимо применить оператор ORDER BY
при вникании просветляет


 
Плохиш ©   (2006-04-19 10:56) [7]


> Вот именно тут первым делом и прочитал. Невижу отсюда, почему
> не должен работать второй запрос.

Фраза "UNION используется для объединения результатов работы нескольких команд SELECT в один набор результатов." Про объединение результатов работы нескольких команд UNION там ничего не говориться, так с чего оно должно работать?


 
VictorT ©   (2006-04-19 10:58) [8]


>(select ...)
>union
>(select ...)
>union
>select ... from ((select ...)
>union
>(select ...)
>order by rand() limit n)
>
> Может поможет?

не понял, что это даёт


 
Плохиш ©   (2006-04-19 10:59) [9]


> не понял, что это даёт

Это даёт
> Фраза "UNION используется для объединения результатов работы
> нескольких команд SELECT в один набор результатов."

Может попробовать?


 
VictorT ©   (2006-04-19 11:06) [10]


> Если для всего результата UNION необходимо применить
>оператор ORDER BY
> при вникании просветляет

Вникал.

> Про объединение результатов работы нескольких команд
> UNION там ничего не говориться, так с чего оно должно
> работать?
Видимо, в этом дело :( Получается, это не решается (без дополнительных таблиц)?


 
VictorT ©   (2006-04-19 11:28) [11]


> Плохиш ©   (19.04.06 10:59) [9][Ответить]

А, теперь понял. Пробую, пока возникают проблемы с альясом полученной таблицы (в селекте выборка из нескольких таблиц)


 
VictorT ©   (2006-04-19 12:34) [12]


> Плохиш ©

Спасибо огромное, по твоему способу получилось, правда пришлось ещё поиграться.



Страницы: 1 вся ветка

Текущий архив: 2006.06.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.043 c
15-1148013686
Карелин Артем
2006-05-19 08:41
2006.06.11
Слово Доллар хуже мата!


15-1147990941
ArtemESC
2006-05-19 02:22
2006.06.11
Файл шрифта для КПК..


15-1147702085
Alkid
2006-05-15 18:08
2006.06.11
Расположение кода в образе


2-1148372478
Мурзилка
2006-05-23 12:21
2006.06.11
время


2-1148204287
Delphin06
2006-05-21 13:38
2006.06.11
Как сделать окно одинаковое на всех мониторах