问题描述
我有三个表:
worker_tb dept_tb
------------------ -----------------------
| id_worker| sex | | id_dept | dept_name |
------------------ -----------------------
| 1 | w | | 1 | Marketing |
| 2 | m | | 2 | Manager |
| 3 | w | -----------------------
| 4 | m |
| 5 | w |
------------------
job_tb
--------------------------------
| id_job | id_worker | id_dept |
--------------------------------
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 3 | 2 |
| 4 | 4 | 1 |
| 5 | 5 | 1 |
--------------------------------
我的控制器:
public function count_sex()
{
$data['count_sex_dept'] = $this->m_worker->count_sex_dept();
$this->load->view('count_sex',$data);
}
我的模特:
public function count_sex_dept()
{
$this->db->select('*,COUNT(sex) as count_sex',FALSE);
$this->db->from('worker_tb');
$this->db->join('job_tb','job_tb.id_worker = worker_tb.id_worker');
$this->db->join('dept_tb','dept_tb.id_dept = job_tb.id_dept');
$this->db->group_by('sex');
$query = $this->db->get();
if ($query->num_rows() >0)
{
foreach ($query->result() as $data)
{
$count_sex_dept[] = $data;
}
return $count_sex_dept;
}
}
我的观点:
<div class="col-md-12">
<?PHP foreach($count_sex_dept as $sd) {
if ($sd->gender == '1'){$sex = 'Man';}
else {$sex = 'Woman';}
?>
<div class="row">
<div class="col-md-4">
<label class="font-weight-bold"><?PHP echo $sex; ?></label>
</div>
<div class="col-md-8">
<p><?PHP echo $sd->count_sex; ?></p>
</div>
</div>
<?PHP } ?>
</div>
错误消息:
错误号:1055
SELECT列表的表达式#1不在GROUP BY子句中,并且包含 非汇总列“ web_db2.tb_karyawan.id_kyw”,不是 功能上取决于GROUP BY子句中的列;这是 与sql_mode = only_full_group_by
不兼容
但是它不起作用。我应该怎么做才能显示此结果视图?
-----------------------------
| dept_name | male | female |
-----------------------------
| Marketing | 2 | 1 |
| Manager | 1 | 1 |
-----------------------------
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)