所以我用下面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