2013-03-08 3 views
0

Я использую MySql, при работе под запросом, я нахожу, что он действует по-разному в двух коробках, может ли кто-нибудь помочь мне?Мои квадратные скобки в квадратных скобках при использовании NOT IN

Код здесь:

SELECT * 
FROM `product` AS `e` 
WHERE e.id NOT IN((SELECT `product_id` FROM `sales`)) 

В одной коробке, он хорошо работает и возвращает результат. В другой коробке, он показывает error: [Err] 1242 - Subquery returns more than 1 row

И это хорошо работает как в боксе, если удалить одну пару(), как показано ниже:

SELECT * 
FROM `product` AS `e` 
WHERE e.id NOT IN(SELECT `product_id` FROM `sales`) 

Может кто-нибудь сказать мне причину, то есть связанные с настройкой сервера ? Могу ли я исправить это без изменения операторов sql?

ответ

0

Данные;

(SELECT `product_id` FROM `sales`) 

рассматривается как первый элемент в списке, который будет использоваться «НЕ В». Это должно быть одно значение, поэтому вы получаете ошибку, потому что возвращаются несколько строк.

+0

но, почему он работает в другой коробке? – SICON

+0

Устранили проблему, обновив MySql до высокой версии. благодаря – SICON