mysql - “on 子句”codeigniter 中的未知列
问题描述
当我在 codeigniter 中使用此查询时:
$this->db->where("dopuex_donation_id", $donation_id);
$this->db->select("donation_purposes_expenses.*, SUM(donation_purposes_expenses.dopuex_withdrawn_value) AS count, cases.case_name");
$this->db->from("donation_purposes_expenses");
$this->db->join("expenses", "donation_purposes_expenses.dopuex_expense_id = expenses.expense_id", "left");
$this->db->join("cases", "expenses.expense_type = 1 && expenses.expense_case_ref_id = cases.case_ref_id", "left");
$this->db->group_by("cases.case_name");
return $this->db->get()->result_array();
我收到了这个错误
Unknown column '1' in 'on clause'
SELECT `donation_purposes_expenses`.*, SUM(donation_purposes_expenses.dopuex_withdrawn_value) AS count, `cases`.`case_name` FROM (`donation_purposes_expenses`) LEFT JOIN `expenses` ON `donation_purposes_expenses`.`dopuex_expense_id` = `expenses`.`expense_id` LEFT JOIN `cases` ON `expenses`.`expense_type` = `1` && expenses.expense_case_ref_id = cases.case_ref_id WHERE `dopuex_donation_id` = '34' GROUP BY `cases`.`case_name`
它将值 1 视为字段 .. 我该如何解决?
解决方案
只需交换条件并在条件之间放置 AND
$this->db->where("dopuex_donation_id", $donation_id);
$this->db->select("donation_purposes_expenses.*, SUM(donation_purposes_expenses.dopuex_withdrawn_value) AS count,
cases.case_name");
$this->db->from("donation_purposes_expenses");
$this->db->join("expenses", "donation_purposes_expenses.dopuex_expense_id = expenses.expense_id",
"left");
$this->db->join("cases", "expenses.expense_case_ref_id = cases.case_ref_id AND expenses.expense_type = 1 ", "left");
$this->db->group_by("cases.case_name");
return $this->db->get()->result_array();
推荐阅读
- terraform - 从数据存储 vSphere 部署虚拟机克隆 OVF/OVA
- react-native - iOS/Android 订阅优惠代码动态链接?
- c++ - 对多源文件项目中函数的未定义引用
- php - 如何覆盖 laravel 照亮 ServiceProvider
- reactjs - 如何解决反应中不变的失败错误
- flutter - 为什么列表视图长度仍然有错误
- java - 请帮我解决这个错误?
- pandas - 如何计算此熊猫表上的“滚动”统计信息,但时间窗口以数据点为中心?
- python - 使用 BeautifulSoup 进行网页抓取时无法捕获 html 元素
- python - Model 类和模型功能 API 的子类化在 tensorflow 中给出不同的结果