gpt4 book ai didi

mysql - 按查询分组仅返回最新结果 - Codeigniter

转载 作者:行者123 更新时间:2023-11-30 00:56:52 25 4
gpt4 key购买 nike

我有以下查询,我想检索每个组的最早/最新日期。

每个群组可以有许多在不同日期旅行的成员,因此我想知道该群组中这些成员之间最早的日期是多少。同样,这对所有现有组完成,然后按所选顺序显示。

这是我正在使用的查询:

public function sortByDate($order, $year)
{
$this->db->select('groups.*, general_info.proposed_date_of_arrival');
$this->db->from('groups');
$this->db->join('general_info', 'general_info.group_id = groups.group_id');
$this->db->where('YEAR(groups.group_year)', $year);
$this->db->group_by('groups.group_id');
$this->db->order_by("general_info.proposed_date_of_arrival", $order);
$val = $this->db->get();
}

但是上面仅返回并比较每个组的最新/最新条目,这不是应该生成的查询类型。

结果输出:

array (size=2)
0 =>
array (size=5)
'group_id' => string '2' (length=1)
'group_leader_name' => string 'Bob' (length=7)
'group_year' => string '2013-11-01' (length=10)
'year' => string '2013' (length=4)
'proposed_date_of_arrival' => string '2014-02-22' (length=10)
1 =>
array (size=5)
'group_id' => string '1' (length=1)
'group_leader_name' => string 'John' (length=7)
'group_year' => string '2013-11-12' (length=10)
'year' => string '2013' (length=4)
'proposed_date_of_arrival' => string '2014-12-15' (length=10)

这两个测试组实际上各有两名成员,第 1 组最早的预计抵达日期为 2013 年 12 月 31 日,第 2 组最早的预计抵达日期为 2014 年 1 月 19 日。

升序排序的实际输出应该是日期为2013-12-31的组在前,日期为2014-01-19的组在下。但是,我得到了上面的数组结果,它比较两个最近的成员,而不是考虑所有成员提议的日期。如何比较所有成员的日期?

最佳答案

认为这就是解决方案

public function sortByArrivalDateASC($year)
{
$this->db->select('groups.*, MIN(date(general_info.proposed_date_of_arrival)) as proposed_date_of_arrival');
$this->db->from('groups');
$this->db->join('general_info', 'general_info.group_id = groups.group_id');
//$this->db->where('YEAR(groups.group_year)', $year);
$this->db->group_by('group_id');
$val = $this->db->get();
}

我缺少一个聚合函数group by。我想我并不需要实现降序,因为我们只想知道最早出发的时间。

Thanks to GROUP_BY MySQL referencethis w3schools explanation

关于mysql - 按查询分组仅返回最新结果 - Codeigniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20480147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com