SELECT *
FROM dbo.tbl_inspectors
WHERE user_id NOT IN
(Select user_id FROM dbo.vw_alerts WHERE alertID=1)
特定のアラートを読み取っていないインスペクターのリストを返そうとしています。user_idが共通フィールドであり、ステートメントのロジックは機能しているようですが、結果は返されません。ただし、サブクエリを単独で実行すると結果が返されます。
SELECT *
FROM dbo.tbl_inspectors
WHERE user_id NOT IN
(Select user_id FROM dbo.vw_alerts WHERE alertID=1)
特定のアラートを読み取っていないインスペクターのリストを返そうとしています。user_idが共通フィールドであり、ステートメントのロジックは機能しているようですが、結果は返されません。ただし、サブクエリを単独で実行すると結果が返されます。
を使用する場合は、値の処理方法が異なるNOT IN
ため、null以外の値のみを含める必要があります。not in
null
SELECT *
FROM dbo.tbl_inspectors
WHERE user_id NOT IN (Select user_id
FROM dbo.vw_alerts
WHERE alertID=1
AND user_id is not null)
NOT IN vs. NOT EXISTS vs. LEFT JOIN / IS NULL:SQLServerを参照してください。
ただし、サブクエリの結果は不要なものです。したがって、サブクエリがすべてのユーザーを返す場合、クエリは結果を返しません。行を返す必要がありますか?アラームに応答していないユーザーがいます。