php - Codeigniter join 语句与 join 语句

标签 php mysql codeigniter select inner-join

我在将以下语句转换为 codeigniter 框架中模型上的代码时遇到问题。

SELECT mt_prs_groups.groupId, mt_prs_groups.groupName, mt_prs_administrators.administratorId
FROM mt_prs_status INNER JOIN (mt_prs_administrators INNER JOIN mt_prs_groups ON mt_prs_administrators.administratorId = mt_prs_groups.administratorId) ON (mt_prs_status.statusId = mt_prs_groups.statusId) AND (mt_prs_status.statusId = mt_prs_administrators.statusId)
WHERE (((mt_prs_status.status)="Active") AND ((mt_prs_administrators.administratorId)=3)) OR (((mt_prs_administrators.administratorId)=4));

在我已将其转换为的模型上

$this->db->select('mt_prs_groups.groupId, mt_prs_groups.groupName');
$this->db->from('mt_prs_status');
$this->db->join('mt_prs_administrators', 'inner');
$this->db->join('mt_prs_groups', 'mt_prs_administrators.administratorId = mt_prs_groups.administratorId AND mt_prs_status.statusId = mt_prs_administrators.statusId', 'inner');
$this->db->where('mt_prs_status.status="Active"');
$this->db->where('mt_prs_administrators.administratorId=3');
$this->db->or_where('mt_prs_administrators.administratorId=4');

这给了我下面的错误

Error Number: 1054

Unknown column 'inner' in 'from clause'

SELECT mt_prs_groups.groupId, mt_prs_groups.groupName FROM mt_prs_status JOIN mt_prs_administrators USING (inner) INNER JOIN mt_prs_groups ON mt_prs_administrators.administratorId = mt_prs_groups.administratorId AND mt_prs_status.statusId = mt_prs_administrators.statusId WHERE mt_prs_status.status = "Active" AND mt_prs_administrators.administratorId = 3 OR mt_prs_administrators.administratorId = 4

当我将其直接放在 mysql 上时,查询运行良好,但在 codeigniter 中失败。问题是内部联接依赖于另一个内部联接

最佳答案

请尝试这个。我在 codeigniter 中尝试了这个

$this->db->select('mt_prs_groups.groupId, mt_prs_groups.groupName');
$this->db->from('mt_prs_status');
$this->db->join('mt_prs_administrators', 'mt_prs_status.statusId = mt_prs_administrators.statusId','inner');
$this->db->join('mt_prs_groups', 'mt_prs_administrators.administratorId = mt_prs_groups.administratorId', 'inner');
$this->db->where('mt_prs_status.status="Active"');
$this->db->where('mt_prs_administrators.administratorId=3');
$this->db->or_where('mt_prs_administrators.administratorId=4');

关于php - Codeigniter join 语句与 join 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40654112/

相关文章:

php - CodeIgniter Active Record 删除特殊字符

php - 如何将 php 变量从 View (html)发送到 Controller

php - 如何准确验证数据库中的电话号码?

MySql 获取列中每种类型元素的计数

mysql - 授予对 RDS 只读副本的权限

php - 如何获取 Woocommerce 产品库图片 URL?

php - SQL 将结果连接到 codeigniter 中的对象中

php - 使用带有其他文本字段的单选按钮将 MySQL 数据回显为 html 形式

php - XML 解析属性 PHP $string = value ;

php - 为 View 使用替代结构时出错