Текущий архив: 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"ов
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)
Может поможет?
← →
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