使用NOT IN时我的sql括号

时间:2013-03-08 06:14:09

标签: mysql notin

我使用MySql,当在查询下运行时,我发现它在两个框中的行为不同,任何人都可以帮助我吗?

代码在这里:

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语句的情况下解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

数据;

 (SELECT `product_id` FROM `sales`)

被视为“NOT IN”使用的列表中的第一项。 这必须是单个值,因此您会收到错误,因为会返回多行。