php - Group by 和 distinct 在 Codeigniter 中的 Oracle 中不起作用
问题描述
在 MySQL 中,distinct 和 group 都可以正常工作,但在 Oracle 中,它无法正常工作,提供以下错误:
对于不同:
ORA-01791: not a SELECTed expression
分组方式:
ORA-00979: not a GROUP BY expression
我的代码是:
public function getOrgModules() {
$session_info = $this->session->userdata('logged_in');
$org = $session_info['ORG_ID'];
$org_group = $session_info['USERGRP_ID'];
$org_group_level = $session_info['USERLVL_ID'];
$user = $session_info['USER_ID'];
//$this->db->distinct('SA_ORG_MODULES.SA_MODULE_ID');
$this->db->select('SA_ORG_MODULES.SA_MODULE_NAME,ATI_MODULES.MODULE_NAME_BN,ATI_MODULES.MODULE_ICON, SA_ORG_MODULES.SA_MODULE_ID, ATI_MODULES.CATEGORY');
$this->db->from('SA_UGLW_MLINK');
$this->db->join('SA_ORG_MODULES', 'SA_UGLW_MLINK.SA_MODULE_ID = SA_ORG_MODULES.SA_MODULE_ID', 'left');
$this->db->join('ATI_MODULES', 'SA_ORG_MODULES.MODULE_IDS = ATI_MODULES.MODULE_ID', 'left');
$this->db->where('SA_UGLW_MLINK.USERGRP_ID', $org_group);
$this->db->where('SA_UGLW_MLINK.UG_LEVEL_ID', $org_group_level);
$this->db->or_where('SA_UGLW_MLINK.USER_ID', $user);
$this->db->where('SA_UGLW_MLINK.ORG_ID', $org);
$this->db->or_where('SA_UGLW_MLINK.CREATE_', "1");
$this->db->or_where('SA_UGLW_MLINK.READ', "1");
$this->db->or_where('SA_UGLW_MLINK.UPDATE_', "1");
$this->db->or_where('SA_UGLW_MLINK.DELETE_', "1");
$this->db->or_where('SA_UGLW_MLINK.STATUS', "1");
$this->db->group_by('SA_ORG_MODULES.SA_MODULE_ID');
$this->db->order_by("ATI_MODULES.SL_NO", "asc");
return $this->db->get()->result();
}
请帮我。提前致谢
解决方案
希望对你有帮助 :
COUNT(SA_ORG_MODULES.SA_MODULE_ID)
在您的 select 子句中添加group by,如下所示:
$this->db->select('SA_ORG_MODULES.SA_MODULE_NAME,
ATI_MODULES.MODULE_NAME_BN,
ATI_MODULES.MODULE_ICON,
SA_ORG_MODULES.SA_MODULE_ID,
ATI_MODULES.CATEGORY,
COUNT(SA_ORG_MODULES.SA_MODULE_ID)
');
推荐阅读
- angular - 奇怪的变化检测行为Angular 2+
- html - 在 wordpress 主题的移动导航栏中添加站点名称
- javascript - 如何连接样式
- octobercms - 如何实现 Rainlab 的 User Plus+ 插件的定位功能?
- regex - 将 perl 单行转换为脚本
- php - 关于替换 URL 中 1 个字符的更优雅解决方案的建议
- amazon-cloudformation - Sub 和 Join 逗号分隔列表
- npm - Gulp SASS 不编译 @import 更改
- c# - 如何重定向到 ASP.NET Core Razor 页面中的页面或路径
- keras - 在 Google Colab 中使用相同的 TPU 模型进行训练和推理(预测)