0

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

4

1 回答 1

0

数据;

 (SELECT `product_id` FROM `sales`)

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

于 2013-03-08T07:11:50.900 回答