0

私はMySqlを使用しています。クエリの下で実行すると、2つのボックスで動作が異なることがわかりました。誰か助けてもらえますか?

コードは次のとおりです。

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

1 つのボックスで、うまく機能し、結果を返します。もう一方のボックスには、error: [Err] 1242 - Subquery returns more than 1 row

また、以下のように () のペアを 1 つ削除すると、両方のボックスでうまく機能します。

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 に答える