我需要加入并获取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子句中。
答案 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;
}
}
我希望它对你有用......