Задать вопрос
Petrify
@Petrify

Подскажите с sql-запросом

Есть запрос в виде
SELECT value FROM table WHERE value2 in ('1','2','3','1')

как сделать, чтобы при дублирующихся значения в аргументе оператора in строки выводились в соответствии с количеством дублей?
Т.е.
если таблица типа

value value2
1 1
2 2
3 3

выводилось бы
value
1
2
3
1
  • Вопрос задан
  • 2290 просмотров
Подписаться 2 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 2
Fastto
@Fastto
Т.к. это результат другого запроса, то решение следующее:

SELECT ВАША_ТАБЛИЦА.value
FROM ( SELECT value FROM… bla bla ) AS tbl < — тут ваш второй запрос
LEFT JOIN ВАША_ТАБЛИЦА ON ВАША_ТАБЛИЦА.value2 = tbl.value

( SELECT value FROM… bla bla ) — должен быть запрос, возвращающий в столбце value требуемый вам список
Ответ написан
Tonik
@Tonik
Насколько я помню, с использованием IN это не возможно. Сходу в голову приходит, сделать временную таблицу из одной колонки, вставить туда все значения из IN и потом переписать запрос на что типа

SELECT value
FROM table t
JOIN tmp_tabel t2 ON (t.value2 = t2.value)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы