使用带有点燃的数据表的Join查询,尝试获得具有两个条件的where



我正试图使用codeigniter和点燃的数据表从mysql数据库中提取数据。我用一个where子句提取联接查询没有问题,但当我尝试添加where x或y时,我似乎无法使其工作。以下是运行良好的基本代码:

$table = 'test_base';
$table2 = 'lab';
$this->datatables->select('test_base.idlab');       
$this->datatables->from($table);
$this->datatables->join($table2, 'test_base.idlab = lab.idlab');
$this->datatables->where('lab.idaccount',$idaccount);

如果我想在查询中放入多个条件,我从手册中看到,我可以将多个条件放入一个数组中,但这似乎只执行AND,而不是OR语句。

然后我发现我可以使用以下内容创建自己的sql查询:

$this->datatables->where('column != "string"');

所以,我尝试了这个:

$this->datatables->where("`lab`.`idaccount`= $idaccount OR `lab`.`idlab` = 0");
SELECT `test_base`.`idlab`
FROM (`test_base`)
JOIN `lab` ON `test_base`.`idlab` = `lab`.`idlab`
WHERE `lab`.`idaccount`=` 124 OR `lab`.`idlab` = 0
ORDER BY `idtest` asc

问题是WHERE的"lab"中有一个额外的(`)`idaccount `=`&lt-这里,我不知道如何摆脱它。

正如@Ehecatl所建议的,我通过在()中输入完整的查询来实现它。CodeIgniter网站上或我能找到的任何其他地方都没有例子。CodeIgniter还是个新手,所以也许这也会对其他人有所帮助。

解决方法是将查询字符串放入$this->datatables->where();并删除所有单引号。

$this->datatables->where("lab.idaccount = $idaccount OR lab.idlab = 0");

最新更新