Вопрос по SQL запросу
есть SQL запрос
SELECT 'men_name','men_fam' FROM 'crm_fiz' WHERE 'men_id' IN (SELECT 'men_vlad' FROM 'ruk' WHERE 'Name' = 'la' AND 'Fam' = 'pa') 'men_vlad' содержит числа через запятую 1,2,3,4(varchar) Если я диапазон ввожу вручную т.е. SELECT 'men_name','men_fam' FROM 'crm_fiz' WHERE 'men_id' IN (1,2,3,4) , сервер возвращает нужные мне значения, но через вложенный запрос возвращает пустоту. Кто знает почему, ответьте , если несложно. |
А что возвращает подзапрос?
|
Цитата:
IN (1,2,3,4) не эквивалентен IN ("1,2,3,4") Подзапрос должен возвращать таблицу из 1 2 3 4 а не строку "1,2,3,4" |
Что можно предпринять в таком случае?
|
Цитата:
|
Хранятся данные о том , какими менеджерами управляет кооридинатор (по id сотвественно)
|
Цитата:
Вот тогда правильный подзапрос вернёт то, что тебе нужно... |
ну что-ж спасибо)
|
На самом деле есть еще вариант.
SELECT 'men_name','men_fam' FROM 'crm_fiz' WHERE FIND_IN_SET(men_id, (SELECT 'men_vlad' FROM 'ruk' WHERE 'Name' = 'la' AND 'Fam' = 'pa'))Тогда структуру базы не надо переделывать. Но лучше бы, конечно переделать, как сказано выше через связанные таблицы. |
Цитата:
|
Часовой пояс GMT +3, время: 22:06. |