时间:2016-05-31 11:31:11

标签: php sql-server codeigniter

我需要加入并获取3个表中的所有数据,并需要使用特定的表字段名称对其进行分组。使用codeigniter和sql server

我的疑问:

$this->db->select('table1.*,table2.*,table3.*');
$this->db->from('table1');
$this->db->join('table2','table1.id = table2.id');
$this->db->join('table3','table1.sid = table3.sid');
$this->db->group_by('table1.field_name');

有可能吗?

我收到此错误:

fieldname在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。

2 个答案:

答案 0 :(得分:1)

通常,在SQL Server中执行Group By时,允许包含在Select语句中的列仅限于Group By子句中的列,以及常量或聚合函数。所以你可以这样做:

Select Table1.field_name, Count(*) as ColumnCount
From Table1
Group By Table1.field_name

但是,除非它们在Group BY中,否则不能包含Table1中的任何其他列。

答案 1 :(得分:0)

在模型中使用此功能

public function anyfunction($table3_id)
        {
            $this->db->select('*');
            $this->db->from('table1'); 
            $this->db->join('table2', 'table2.table2_id=table2.id', 'left');
            $this->db->join('table3', 'table3.table1_id=table1.table1_id', 'left');
            $this->db->where('table3.table1_id',$table3id);
            $this->db->order_by('table3.field_name','asc');         
            $query = $this->db->get(); 
            if($query->num_rows() != 0)
            {
                return $query->result_array();
            }
            else
            {
                return false;
            }
        }

我希望它对你有用......