📌  相关文章
📜  选择列表不在 group by 子句中并且包含非聚合列 codeigniter - SQL (1)

📅  最后修改于: 2023-12-03 14:58:00.424000             🧑  作者: Mango

选择列表不在 group by 子句中并且包含非聚合列 codeigniter - SQL

这个错误通常出现在使用带有 GROUP BY 子句的 SQL 查询时。如果你的选择列表中包含非聚合列,但是该列没有出现在 GROUP BY 子句中,那么就会出现这个错误。

在 CodeIgniter 中,你可以通过使用 group_by() 方法来添加 GROUP BY 子句。但要注意,你只能选择出现在 GROUP BY 子句中或者聚合函数中的列。否则,你将会看到这个错误。

以下是一个示例代码片段:

$this->db->select('name, SUM(price) as total_price');
$this->db->from('orders');
$this->db->join('customers', 'orders.customer_id = customers.id');
$this->db->group_by('name');

$query = $this->db->get();

if ($query->num_rows() > 0) {
    foreach ($query->result() as $row) {
        echo $row->name . ': ' . $row->total_price . '<br />';
    }
}

在上面的代码中,我们选择了 name 列和 price 列,并使用 SUM() 函数将 price 列聚合起来。然后我们在 group_by() 方法中指定了 name 列。

这个查询将按照 name 列分组,并计算每个组中的总价值。我们可以通过查询结果来获取每个组的名称和总价值。

总之,要解决这个错误,一定要确保所选列要么出现在 GROUP BY 子句中,要么是聚合函数的参数。