Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / id IN( отсортированный результат запроса SELECT ) / 4 сообщений из 4, страница 1 из 1
24.03.2015, 13:28:40
    #38914906
sqlNovyi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
id IN( отсортированный результат запроса SELECT )
Здравствуйте.
Проблема похоже на http://www.sql.ru/forum/1091189/sql-in-array?hl=id in.
Только в IN не готовый массив айдишников, а отсортированная как мне надо таблица айдишников:

SELECT * FROM tbl_post WHERE id IN (- результат SELECT, отсортированная таблица с одним полем id -)

Как добиться того чтобы в результате всего запроса я получал значения отсортированные как во вложенном запросе?
Спасибо.
...
Рейтинг: 0 / 0
24.03.2015, 13:33:56
    #38914912
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
id IN( отсортированный результат запроса SELECT )
Код: sql
1.
2.
3.
4.
5.
SELECT tbl_post.* FROM tbl_post 
JOIN (
 - результат SELECT, отсортированная таблица с одним полем id -
) t0 on tbl_post.id=t0.id
order by t0.id

хотя, собственно, что вам мешает тупо сортировать по ид результат исходного запроса? они же (иды) всё равно совпадут...
...
Рейтинг: 0 / 0
24.03.2015, 14:54:06
    #38915051
sqlNovyi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
id IN( отсортированный результат запроса SELECT )
Проблему не решил. Запрос сложный. Привожу запрос полностью:

select id from tbl_catalog_catalog where 1=1 and id in (
select id from
(select ta.id, if(@typex=ta.categoryId, @rownum:=@rownum+1, @rownum:=1+least(0,@typex:=ta.categoryId)) AS rown from (SELECT * FROM tbl_catalog_catalog WHERE categoryId IN(6,7,8,9))ta, (select @rownum:=1, @typex:='_') zz order by rown, categoryId, id ASC)
as my
)

Первый селект - "select id from tbl_catalog_catalog where 1=1 and id in ( ..." - нужен из-за ограничений системы в которой работаю.
Дальше 2 вложенных селекта которые сортируют результаты так как мне надо.
Как я понимаю, оператор IN выдает результат основываясь на принятом им массиве или результате выборки но без сортировки. Мне же нужно чтобы сортировка сохранялась как во внутренней выборке. Нет ли оператора который бы отдавал в результате поля в строгой очередности принятых аргументов?
...
Рейтинг: 0 / 0
24.03.2015, 15:51:02
    #38915162
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
id IN( отсортированный результат запроса SELECT )
sqlNovyiМне же нужно чтобы сортировка сохранялась как во внутренней выборке.Перенести сортировку из подзапроса в запрос. А в подзапросе убрать - она там чуть больше чем нахрен не нужная и вообще лишняя.

sqlNovyiНет ли оператора который бы отдавал в результате поля в строгой очередности принятых аргументов?Нет.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / id IN( отсортированный результат запроса SELECT ) / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]