无法获取按 sql 中的组行过滤的行

我有一个表,其中有开始日期和结束日期,这些行按唯一 ID 分组,例如行 ID 4,5 有 group_identify_id 5700045,行 ID 1,2,3 有 group_identify_id 5700044。我必须只选择那些组group 的所有行的开始列都大于当前日期。例如。如果当前日期为 15,则结果中不应显示 5700045。


id                start                       end        group_identify_id


1          2019-07-18 07:15:00  2019-07-18 08:15:00          5700044

2          2019-07-16 07:15:00  2019-07-16 08:15:00          5700044

3          2019-07-17 07:15:00  2019-07-17 08:15:00          5700044

4          2019-07-15 07:15:00  2019-07-15 08:15:00          5700045

5          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          5700044

2          2019-07-16 07:15:00  2019-07-16 08:15:00          5700044

3          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();    

但它匹配整行而不是一组行。


芜湖不芜
浏览 128回答 3
3回答

翻过高山走不出你

以下是可以为您提供所需结果的原始查询。SELECT&nbsp;*&nbsp;FROM&nbsp;schedule_diary&nbsp;WHERE&nbsp;group_identify_id&nbsp;NON&nbsp;IN&nbsp;(&nbsp;SELECT&nbsp;group_identify_id&nbsp;FROM&nbsp;schedule_diary&nbsp;WHERE&nbsp;start&nbsp;&nbsp;<=&nbsp;$currentDate)&nbsp;);您需要将此查询转换为 CodeIgniter 框架,或者您也可以使用 $this->db->query('RawQueryHere')

炎炎设计

试试这个查询:$this->db->where('start&nbsp;>',&nbsp;$currentDate)->get('schedule_diary')->result();
打开App,查看更多内容
随时随地看视频慕课网APP