Не могу сделать запрос к некоторым данным в MY SQL
4216
3
Всем добрый день. Делаю не сложный запрос к БД


SELECT `company`.`form`, `company`.`system`, `calendar`.`id`, `calendar`.`date_start`, `calendar`.`date_finish`,
`calendar`.`report`, `calendar`.`what`, `calendar`.`where` FROM `company`, `calendar`
WHERE `calendar`.`system`=`company`.`system` and `company`.`id`='$page' and `company`.`form` IN (`calendar`.`form`)
ORDER BY `calendar`.`date_finish`


`company`.`form` IN (`calendar`.`form`) - при помощи этого пытаюсь собрать данные, где есть соответствие. Например:
"слово IN (слово, еще что-то, 123)
Если в `calendar`.`form` одно значение, то отображает, если несколько ничего не срабатывает. Начал проверять другие запросы та же ошибка, данные какие то потеряны? Или файл повредился как то?
Почему? Подскажите, пожалуйста.
dmorin
ошибку какую выдаёт?
Через что Вы делаете такой запрос - скрипт какой или phpmyadmin?
dmorin
На сколько я помню SQL, в случае, если под IN

если несколько
то там внутри должен быть подзапрос SELECT.

Кстати, а чем не походит вариант

WHERE `calendar`.`system`=`company`.`system` and `company`.`id`='$page' and `company`.`form` =`calendar`.`form`

?
dmorin
Мануал именно это нам и подсказывает:

predicate:
bit_expr [NOT] IN (subquery)
| bit_expr [NOT] IN (expr [, expr] ...)
| bit_expr [NOT] BETWEEN bit_expr AND predicate
| bit_expr SOUNDS LIKE bit_expr
| bit_expr [NOT] LIKE simple_expr [ESCAPE simple_expr]
| bit_expr [NOT] REGEXP bit_expr
| bit_expr


http://dev.mysql.com/doc/refman/5.7/en/expressions.html

Т.е. либо явно заданные значения через запятую, либо одно значение, полученной из поля (но единственное значение!), либо подзапрос (subquery).