表1,用户表 user
表2,用户记录表 from_id
SELECT * from `user` `u` LEFT JOIN `form_id` `f` ON u.id = f.user_id
WHERE (`f`.`addtime` >= 6天前的时间) AND (`f`.`addtime` <= 3天前的时间)
ORDER BY `f`.`addtime` DESC LIMIT 20;
需求是筛选出前3天没有记录的用户,这个如何实现?上面这个我实现的筛选出(前6~3天)的最后一次时间的用户记录。
但是如果用户记录表有( 最近3天内)的记录,也是会把(前6~3天)的记录给查询出来。正常查询是会把符合条件的都查询示出来。
那或者说如何在条件2(最近3天内)符合的情况下,把条件1(前6~3天)符合的都去除呢?
表2,用户记录表 from_id
SELECT * from `user` `u` LEFT JOIN `form_id` `f` ON u.id = f.user_id
WHERE (`f`.`addtime` >= 6天前的时间) AND (`f`.`addtime` <= 3天前的时间)
ORDER BY `f`.`addtime` DESC LIMIT 20;
需求是筛选出前3天没有记录的用户,这个如何实现?上面这个我实现的筛选出(前6~3天)的最后一次时间的用户记录。
但是如果用户记录表有( 最近3天内)的记录,也是会把(前6~3天)的记录给查询出来。正常查询是会把符合条件的都查询示出来。
那或者说如何在条件2(最近3天内)符合的情况下,把条件1(前6~3天)符合的都去除呢?
解决方案 »
- 求一个Mysql生成流水号的存储过程
- vc++连接mysql数据库问题
- 高手帮忙看看mysql挂掉的原因,有日志
- 求一条sql语句
- 问一个问题, 高分相送, 能者快拿~~~~~~~~~~~~~~~~~~~~~~
- 百分求个sql句子,需求很明确.目的很简单. - -
- 那里有JDBC sqlserver驱动下载,不是MYSQL
- [Important] vs2005 mysql++无法连接mysql数据库
- 如何把phpMyAdmin里面的mysql数据库放到mssql?
- utf8mb4下,发现任何ext-b字符都相同
- DBeaver连接mysql建表发生错误
- 关于mysql的按字符字段按月分区的问题
*
FROM
USER u
WHERE
u.id != ANY ( SELECT DISTINCT f.user_id FROM form_id f WHERE f.addtime >= DATE_SUB( CURDATE( ), INTERVAL 3 DAY ) )
麻烦大家帮我看一下哈整体需求就是获取6天内有记录,但是前3天没有记录的用户。下面是代码,简化了一些不必要的条件。SELECT
`u`.`id`, `f`.`addtime` AS `f_addtime`
FROM `user` `u` LEFT JOIN `form_id` `f` ON f.user_id = u.id and f.type = 'form_id' and
NOT EXISTS(SELECT 1 FROM form_id ff
WHERE ff.user_id = f.user_id AND ff.type = 'form_id' AND ff.addtime >= 3天前的时间戳)
WHERE `f`.`type`='form_id' AND `f`.`addtime` >= 6天前的时间戳 AND `f`.`addtime` <= 3天前的时间戳
ORDER BY `f`.`addtime` DESC LIMIT 20