Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.08.2011, 12:59
Интересующийся
Отправить личное сообщение для Mazai Посмотреть профиль Найти все сообщения от Mazai
 
Регистрация: 29.03.2011
Сообщений: 23

Вопрос по 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) , сервер возвращает нужные мне значения,
но через вложенный запрос возвращает пустоту.
Кто знает почему, ответьте , если несложно.
Ответить с цитированием
  #2 (permalink)  
Старый 08.08.2011, 13:10
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

А что возвращает подзапрос?
Ответить с цитированием
  #3 (permalink)  
Старый 08.08.2011, 13:17
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Mazai
'men_vlad' содержит числа через запятую 1,2,3,4(varchar)
...
Кто знает почему, ответьте , если несложно.
Ответ очевиден. Поскольку

IN (1,2,3,4)


не эквивалентен

IN ("1,2,3,4")


Подзапрос должен возвращать таблицу из

1
2
3
4


а не строку

"1,2,3,4"
Ответить с цитированием
  #4 (permalink)  
Старый 08.08.2011, 13:17
Интересующийся
Отправить личное сообщение для Mazai Посмотреть профиль Найти все сообщения от Mazai
 
Регистрация: 29.03.2011
Сообщений: 23

Что можно предпринять в таком случае?
Ответить с цитированием
  #5 (permalink)  
Старый 08.08.2011, 13:20
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Mazai
Что можно предпринять в таком случае?
А что хранится (идеологически) в поле men_vlad?
Ответить с цитированием
  #6 (permalink)  
Старый 08.08.2011, 13:27
Интересующийся
Отправить личное сообщение для Mazai Посмотреть профиль Найти все сообщения от Mazai
 
Регистрация: 29.03.2011
Сообщений: 23

Хранятся данные о том , какими менеджерами управляет кооридинатор (по id сотвественно)
Ответить с цитированием
  #7 (permalink)  
Старый 08.08.2011, 13:32
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Mazai
какими менеджерами управляет кооридинатор
Однозначно менять структуру хранения данных! Такого рода данные нужно хранить в другой связаной таблице.
Вот тогда правильный подзапрос вернёт то, что тебе нужно...
Ответить с цитированием
  #8 (permalink)  
Старый 08.08.2011, 13:37
Интересующийся
Отправить личное сообщение для Mazai Посмотреть профиль Найти все сообщения от Mazai
 
Регистрация: 29.03.2011
Сообщений: 23

ну что-ж спасибо)
Ответить с цитированием
  #9 (permalink)  
Старый 08.08.2011, 13:51
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

На самом деле есть еще вариант.
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'))
Тогда структуру базы не надо переделывать. Но лучше бы, конечно переделать, как сказано выше через связанные таблицы.
Ответить с цитированием
  #10 (permalink)  
Старый 08.08.2011, 14:06
Интересующийся
Отправить личное сообщение для Mazai Посмотреть профиль Найти все сообщения от Mazai
 
Регистрация: 29.03.2011
Сообщений: 23

Сообщение от ваый Посмотреть сообщение
На самом деле есть еще вариант.
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'))
Тогда структуру базы не надо переделывать. Но лучше бы, конечно переделать, как сказано выше через связанные таблицы.
Спасибо , ваш вариант работает, структуру сейчас менять уже поздно, база построена.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопрос про возможности JS для рисования и анимации macdack Библиотеки/Тулкиты/Фреймворки 3 15.07.2011 00:13
вопрос по запросу mysql bushstas Серверные языки и технологии 2 18.04.2011 15:20
Теоретический вопрос. gods33 (X)HTML/CSS 10 16.12.2010 23:49
Установка JDBC Driver для SQL grim Общие вопросы Javascript 2 22.11.2010 08:20
вопрос по long poll megaswin AJAX и COMET 2 27.05.2008 09:20