SELECT *
FROM dbo.tbl_inspectors
WHERE user_id NOT IN
(Select user_id FROM dbo.vw_alerts WHERE alertID=1)
我试图返回一个没有读å–特定è¦æŠ¥çš„检查员列表,user_id是公共å—段,该è¯å¥çš„逻辑似乎有效,但没有返回任何结果。虽然å查询确实会在å•ç‹¬è¿è¡Œæ—¶è¿”回结果。
ç”案 0 :(得分:4)
如果您想使用NOT IN
,那么您应该åªåŒ…å«éžç©ºå€¼ï¼Œå› 为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: SQL Server
ç”案 1 :(得分:0)
但åæŸ¥è¯¢ç»“æžœæ˜¯ä½ ä¸æƒ³è¦çš„ç»“æžœã€‚å› æ¤ï¼Œå¦‚æžœå查询返回所有用户,那么您的查询将ä¸ä¼šè¿”å›žä»»ä½•ç»“æžœã€‚ä½ ç¡®å®šå®ƒåº”è¯¥è¿”å›žè¡Œ - 有些用户没有å“应è¦æŠ¥ã€‚