mysql - Buggy 加入 CodeIgniter ActiveRecord

标签 mysql codeigniter activerecord join left-join

最近,我再次注意到 CodeIgniter 的 ActiveRecord 库中存在一个令人难以置信的逻辑错误。

当我尝试在联接中使用“AND”时出现问题。

示例查询:

$this -> db -> join(
    'predict',
    "predict.id_predict = portion.id_predict AND event.id_event = 5",
    'left'
);

结果:

LEFT JOIN `predict` ON
    `predict`.`id_predict` = `portion`.`id_predict`
    AND event.id_event = 5

但应该更有可能:

LEFT JOIN `predict` ON (
     `predict`.`id_predict` = `portion`.`id_predict`
     AND `event`.`id_event` = 5
)

有什么办法可以避免这种错误吗?

最佳答案

$this->db->join(
    'predict',
    "(predict.id_predict = portion.id_predict AND `event`.`id_event` = 5)",
    'left'
);

你在找这个吗?

编辑

$this->db->join('predict', "predict.id_predict = portion.id_predict", 'left');
$this->db->where('event.id_event = 5');

关于mysql - Buggy 加入 CodeIgniter ActiveRecord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14696254/

相关文章:

mysql - 搜索至少1次命中,mysql并join

mysql - BIML 创建错误的元数据

javascript - 带有 ajax 的 Codeigniter : success function not working

node.js - 我如何在 node js sequelize 中编写此查询

ruby-on-rails - 为什么 ActiveRecord/PostgreSQL 在数据库中找不到我的数据?

ruby-on-rails - 将 Rails 中的两个模型组合为一个表单

php - MySQL SELECT 概率喜恶系统

mysql - 在 Mysql 中使用 CASE 将值设置为别名字段

php - 使用事件记录形成查询

sql - Rails 中具有多个连接的高级查询