a.update_date,
a.user_id,
a.news_id,
(CASE WHEN b.counter IS NULL THEN 0 ELSE b.counter END) as 'Counter'
FROM (
SELECT update_date, user_id, news_id
FROM t_comment
GROUP BY update_date, user_id, news_id) a
LEFT OUTER JOIN
(
SELECT update_date, user_id, news_id,
count(*) AS counter FROM t_comment
WHERE user_id = 2 AND news_id = 15
GROUP BY user_id, news_id
) b
ON a.update_date = b.update_date
AND a.user_id = b.user_id
AND a.news_id = b.news_id
GO
T-SQL实现,原理如上,未经测试。祝你好运。
这个问题的根源在于null。
众所周知,当判断一个值是否为null的时候,sql要用is null 或者is not null, 在SQL中,Null值并不是一个值,而是表示特定含义,其所表示的含义是“Unknow”,可以理解为未定义或者未知,因此任何与Null值进行比对的二元 *** 作符结果一定为Null,包括Null值本身。
解决:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)