0
SELECT * 
FROM dbo.tbl_inspectors 
WHERE user_id NOT IN 
(Select user_id FROM dbo.vw_alerts WHERE alertID=1)

特定のアラートを読み取っていないインスペクターのリストを返そうとしています。user_idが共通フィールドであり、ステートメントのロジックは機能しているようですが、結果は返されません。ただし、サブクエリを単独で実行すると結果が返されます。

4

2 に答える 2

4

を使用する場合は、値の処理方法が異なるNOT INため、null以外の値のみを含める必要があります。not innull

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を参照してください。

于 2013-02-28T11:15:47.873 に答える
0

ただし、サブクエリの結果は不要なものです。したがって、サブクエリがすべてのユーザーを返す場合、クエリは結果を返しません。行を返す必要がありますか?アラームに応答していないユーザーがいます。

于 2013-02-28T11:19:28.410 に答える