PHP CodeIgniter WHERE 子句语句

标签 php mysql codeigniter

我有一个非常基本的声明,我正在尝试运行但遇到了问题。

$item = $this->db
            ->select("r.CustomerIDs, r.DateAdded")
            ->join("customer_orders_rewards as cor", "r.RewardID = cor.RewardID")
            ->join("customer_orders as co", "co.OrderID = cor.OrderID")
            ->where(array("r.Denomination" => $row['Denomination'], "r.RewardID" => "cor.RewardID"))
            ->get("customer_rewards as r");

在上面的语句中,它将 cor.RewardID 解释为一个字符串,我希望它是来自 join 的字段。

它导致查询看起来像这样:

SELECT `r`.`CustomerID`, `r`.`DateAdded` 
FROM `customer_rewards` as `r` 

JOIN `customer_orders_rewards` as `cor` 
ON `r`.`RewardID` = `cor`.`RewardID` 

JOIN `customer_orders` as `co` 
ON `co`.`OrderID` = `cor`.`OrderID` 

WHERE `r`.`Denomination` = '35' 
AND `r`.`RewardID` = 'cor.RewardID'  <---- Issue

如何在我的 WHERE 子句中引用来自 join 的字段?

最佳答案

一个简单的解决方法是使用

"r.RewardID = cor.RewardID"

代替

"r.RewardID" => "cor.RewardID"

这样,cor.RewardID 不应被视为字符串文字,而应被视为实际列。


旁注,当 r.RewardID = cor.RewardID 时,您已经加入了行,所以我想说额外的条件是多余的(有问题的条件),因此不需要.

关于PHP CodeIgniter WHERE 子句语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48123098/

相关文章:

php - 如何删除网址中的index.php

php - TCPDF - 从 mysql 打印表格

mysql - VB2008 与 MySQLConnector .net 6.1

mysql - 无法将外键约束添加到我的表中

javascript - 使用外部 JS 文件时 Codeigniter ajax 请求不起作用

php - 如何让我的 CMS 自行升级?

javascript - 使用 symfony 的 .post 函数中的 PHP 文件

php - 无法分配内存错误问题

php - MySQL Workbench 未安装在 ubuntu 上

mysql - 如何使用与 table1 无关的子句正确计算 table2 中与 table1 中的项目相关的行