Главная страница
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.044 c
2-1148559378
Turbid
2006-05-25 16:16
2006.06.11
Кирилица в меню


5-1133518541
De
2005-12-02 13:15
2006.06.11
Как изменить внешний вид стандартного контрола?


1-1146815087
zhegulov
2006-05-05 11:44
2006.06.11
Формирование XML-файла


15-1148045147
Lexer
2006-05-19 17:25
2006.06.11
Heroes of Might and Magic V ...наконец-то!!!


3-1145514966
vishnia
2006-04-20 10:36
2006.06.11
Индексы в Access