Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вложенный запрос
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Вложенный запрос

Страниц (1): [1]
 

1. templton - 21 Апреля, 2011 - 00:21:02 - перейти к сообщению
Господа! Не дайте мозгу взорваться от деления на ноль!
Суть. есть таблица table
-------------------------------- ----
| num | col | pos |
-------------------------------- ----
| 5 | 7 | 1,2,3,4,5 |
-------------------------------- ----
| 9 | 19 | 3,7,9 |
-------------------------------- ----
| 8 | 1 | 11,12 |
-------------------------------- ----

необходимо выбрать поля num и col при условии, что поле pos содержит переменную x. К примеру, делаю:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT TABLE.num, TABLE.col WHERE x IN (SELECT TABLE.pos FROM TABLE)
  3.  

в этом случае нужные столбцы выбираются только, если перенная х есть во всех строчках поля pos.
При этом способ
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT TABLE.num, TABLE.col FROM TABLE WHERE x IN (pos)
  3.  

не проходит, выкидывается ошибка, мол, pos имеет имеет множество значений.
Были б знания, как добраться до данных с формы и данных в таблицам средствами vba, то сделал бы за 5 минут. Было б это на php+mysql - тоже недолго скриптом обработать. Короче, были б спички - был бы рай.
Может быть можно как-то использовать другие запросы? Допустим сделать пару-тройку предварительных запросов, а потом на основе их результатов сделать результирующий запрос (БД - access)?
2. evgenijj - 21 Апреля, 2011 - 00:43:57 - перейти к сообщению
Давайте начнем с того, что структура БД построена неправильно. Поэтому и корретный запрос составить невозможно. Как только Вы осознаете, что нужно еще две таблицы -- так и заходите. Будет ответ.
3. templton - 21 Апреля, 2011 - 00:48:14 - перейти к сообщению
evgenijj пишет:
Давайте начнем с того, что структура БД построена неправильно. Поэтому и корретный запрос составить невозможно. Как только Вы осознаете, что нужно еще две таблицы -- так и заходите. Будет ответ.


Да, у меня была идея добавить таблицы, но проблема в том, что поле pos выбирается. как подстановка поля другой таблицы с множественным выбором. То есть в любом случае в конечном счете будет поле pos, а в нем будет несколько значений. Были бы значения разбросаны по полям либо по записям...
4. evgenijj - 21 Апреля, 2011 - 01:11:16 - перейти к сообщению
Давайте Вы для начала опишете модель, а на этой основе можно построить структуру БД.
5. nofx - 21 Апреля, 2011 - 09:02:19 - перейти к сообщению
Может быть вместо IN поробывать LIKE
6. templton - 21 Апреля, 2011 - 11:05:14 - перейти к сообщению
nofx пишет:
Может быть вместо IN поробывать LIKE

Тоже об этом думал, но не пойдет. Структура поля, в котором несколько значение:



pos.value access делает сам. Прямое обращение к pos.value ничего не дает. Получается вроде как поле pos содержит внутри себя ни то объекты, ни еще что-то - в общем какую-то структуру.

 

Powered by ExBB FM 1.0 RC1