所以我用下面where語句查詢。基本上,我想確保在過去7天內沒有運動或球員活動。在where語句中處理NULL值(SQL)
WHERE......
AND (((SELECT max(sportswagerbyleague.asOfDate)
FROM sportswagerbyleague
WHERE sportswagerbyleague.userID = customer_profile.userID)
<= date(CURDATE()) - INTERVAL 7 DAY )
AND ((SELECT max(pa.txndate)
FROM player_activity pa
WHERE pa.userID = customer_profile.userID) <= date(CURDATE()) - INTERVAL 7 DAY))
但是,如果有一個NULL值(也就是該用戶要麼沒有玩家活動或體育活動),那麼WHERE語句成爲該特定用戶錯誤。即使對於單個NULL值,我也希望WHERE語句保持爲真。
對此提出建議?
任何理由爲什麼它是「*」,而不是「最大(sportswagerbyleague.asOfDate)」或者是它只是一個錯字? – eddd83
沒有類型,像max(sportswagerbyleague.asOfDate)這樣的聚集總是會返回一行(如果沒有匹配的行,則返回「NULL」),所以'NOT EXISTS'永遠不會是真的。 '[NOT] EXISTS'是實際推薦'*'的唯一地方:-) – dnoeth