このクエリが空のセットを返すのはなぜですか:
select p.iuser_id,p.produit_id from portefeuille p
WHERE produit_id=48
AND p.iuser_id NOT IN (NULL);
一方、これは:
select p.iuser_id,p.produit_id from portefeuille p
WHERE produit_id=48
LIMIT 5
のような結果を返します
72968, 48
106967, 48
7381, 48
81678, 48
194250, 48
また、これらの値はいずれも NULL ではないか、NULL に等しい必要があります。(簡潔にするために制限 5 を追加し、MySql 5.1 を使用しています)
編集: ここでは、問題を NOT IN(NULL) に絞り込みました。元のクエリには、一部の行に NULL を含むサブクエリがありました。
WHERE user_id NOT IN( select user_id from mailsubscriptions )
一部の user_id は NULL でしたが、セット内の 1 つの NULL だけがクエリ全体を汚染しています。