我正在编写修剪脚本,删除我网站上一周前上传的内容,并在上周访问了0或1次。
有2个表:
我想出了这个。
$last_week_date = date('Y-m-d',$now-(60*60*24*7));
$last_week_timestamp = $now-(60*60*24*7);
SQL
SELECT
vid_id,
COALESCE(sum(hit_hits),0) as total_hits
FROM videos
LEFT JOIN daily_hits
ON vid_id = hit_itemid
WHERE (hit_date >= '$last_week_date') AND vid_posttime <= '$last_week_timestamp'
GROUP BY hit_itemid
HAVING total_hits < 2
这会输出上周访问过一次的项目....但不会输出那些根本没有访问过的项目。如果上周没有访问任何项目,则daily_hits表中不会有任何条目。我认为COALESE应该照顾它,但那没有用。
我该如何解决这个问题?
答案 0 :(得分:2)
total_hits&lt; 2
这保证“空命中”不会出现。
创建第二个查找空值的查询(它将显示来自daily_hits中没有相应键的视频的记录)。
创建UNION查询以将两个数据集显示为一个。
答案 1 :(得分:0)
HAVING total_hits < 2 or total_hits is null