我有一个表,其中有开始日期和结束日期,这些行按唯一 ID 分组,例如行 ID 4,5 有 group_identify_id 5700045,行 ID 1,2,3 有 group_identify_id 5700044。我必须只选择那些组group 的所有行的开始列都大于当前日期。例如。如果当前日期为 15,则结果中不应显示 5700045。id start end group_identify_id1 2019-07-18 07:15:00 2019-07-18 08:15:00 57000442 2019-07-16 07:15:00 2019-07-16 08:15:00 57000443 2019-07-17 07:15:00 2019-07-17 08:15:00 57000444 2019-07-15 07:15:00 2019-07-15 08:15:00 57000455 2019-07-14 07:15:00 2019-07-14 08:15:00 5700045结果应该是这样的:结果:1 2019-07-18 07:15:00 2019-07-18 08:15:00 57000442 2019-07-16 07:15:00 2019-07-16 08:15:00 57000443 2019-07-17 07:15:00 2019-07-17 08:15:00 5700044我正在尝试这样的事情:$results = $this->db->where('where('DATE(start) >=',$currentDate)->get('schedule_diary')->result(); 但它匹配整行而不是一组行。
3 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
以下是可以为您提供所需结果的原始查询。
SELECT * FROM schedule_diary WHERE group_identify_id NON IN ( SELECT group_identify_id FROM schedule_diary WHERE start <= $currentDate) );
您需要将此查询转换为 CodeIgniter 框架,或者您也可以使用 $this->db->query('RawQueryHere')
炎炎设计
TA贡献1808条经验 获得超4个赞
试试这个查询:
$this->db->where('start >', $currentDate)->get('schedule_diary')->result();
- 3 回答
- 0 关注
- 127 浏览
添加回答
举报
0/150
提交
取消