Mysqlがnot inで結果を返さない理由と解決策

594 ワード

の原因となるnot inallに相当し、not inの後にサブクエリが続く場合、サブクエリにnullの戻り値が1つ含まれている限り、not in文全体が空の値を返し、クエリは結果を返さない.ただし、inanyに相当し、サブクエリでnullを返す場合を処理し、正しい結果を返すことができる.
ソリューションnot inが空の値を返さないようにするには、サブクエリのWhere文の後に空のレコードをふるいにかけることができます.たとえば、次のようにします.
select * from users u 
where u.unionid not in 
    (SELECT su.s_unionid 
    from   ninth_studio.staff_users su 
    where su.s_unionid is not null)

転載先:https://www.cnblogs.com/wanglvtao/p/10751954.html