使用 Codeigniter 进行复杂查询连接
Complex query join using Codeigniter
我有一个查询在 phpmyadmin 中产生结果,但在 codeigniter 中没有。
$sql = "SELECT express_interests.*,
cl_to .User_Name AS ToClient,
cl_from.User_Name AS FromClient,
cl_from.Member_Id AS FromMid,
cl_to.Member_Id AS ToMid
FROM express_interests
INNER JOIN users AS cl_to ON cl_to.User_Id = express_interests.To_Id
INNER JOIN users AS cl_from ON cl_from.User_Id = express_interests.User_Id";
我想在 codeignitor 中使用相同的查询。这是我用过的
$this->db->select('express_interests.*,
cl_to .User_Name AS ToClient,
cl_from.User_Name AS FromClient,
cl_from.Member_Id AS FromMid,
cl_to.Member_Id AS ToMid
');
$this->db->from('express_interests');
$this->db->join('users AS cl_to', 'cl_to.User_Id = express_interests.To_Id');
$this->db->join('users AS cl_from', 'cl_from.User_Id = express_interests.User_Id');
当我使用它时它说
Unknown column 'cl_to .User_Name' in 'field list'
在 codeigniter 中使用上述查询的正确方法是什么。
$this->db->select('express_interests.*,
cl_to .User_Name AS ToClient,
cl_from.User_Name AS FromClient,
cl_from.Member_Id AS FromMid,
cl_to.Member_Id AS ToMid
');
将其替换为
$this->db->select('express_interests.*,
cl_to.User_Name AS ToClient,
cl_from.User_Name AS FromClient,
cl_from.Member_Id AS FromMid,
cl_to.Member_Id AS ToMid
');
table 别名和列名之间不需要的间距
替换
cl_to .User_Name AS ToClient,
与
cl_to.User_Name AS ToClient,
或者你可以在codeigniter中直接运行 sql声明为
$sql = "SELECT express_interests.*,
cl_to.User_Name AS ToClient,
cl_from.User_Name AS FromClient,
cl_from.Member_Id AS FromMid,
cl_to.Member_Id AS ToMid
FROM express_interests
INNER JOIN users AS cl_to ON cl_to.User_Id = express_interests.To_Id
INNER JOIN users AS cl_from ON cl_from.User_Id = express_interests.User_Id";
$result=$this->db->query($sql);
print_r($result->result());
die;
我有一个查询在 phpmyadmin 中产生结果,但在 codeigniter 中没有。
$sql = "SELECT express_interests.*,
cl_to .User_Name AS ToClient,
cl_from.User_Name AS FromClient,
cl_from.Member_Id AS FromMid,
cl_to.Member_Id AS ToMid
FROM express_interests
INNER JOIN users AS cl_to ON cl_to.User_Id = express_interests.To_Id
INNER JOIN users AS cl_from ON cl_from.User_Id = express_interests.User_Id";
我想在 codeignitor 中使用相同的查询。这是我用过的
$this->db->select('express_interests.*,
cl_to .User_Name AS ToClient,
cl_from.User_Name AS FromClient,
cl_from.Member_Id AS FromMid,
cl_to.Member_Id AS ToMid
');
$this->db->from('express_interests');
$this->db->join('users AS cl_to', 'cl_to.User_Id = express_interests.To_Id');
$this->db->join('users AS cl_from', 'cl_from.User_Id = express_interests.User_Id');
当我使用它时它说
Unknown column 'cl_to .User_Name' in 'field list'
在 codeigniter 中使用上述查询的正确方法是什么。
$this->db->select('express_interests.*,
cl_to .User_Name AS ToClient,
cl_from.User_Name AS FromClient,
cl_from.Member_Id AS FromMid,
cl_to.Member_Id AS ToMid
');
将其替换为
$this->db->select('express_interests.*,
cl_to.User_Name AS ToClient,
cl_from.User_Name AS FromClient,
cl_from.Member_Id AS FromMid,
cl_to.Member_Id AS ToMid
');
table 别名和列名之间不需要的间距
替换
cl_to .User_Name AS ToClient,
与
cl_to.User_Name AS ToClient,
或者你可以在codeigniter中直接运行 sql声明为
$sql = "SELECT express_interests.*,
cl_to.User_Name AS ToClient,
cl_from.User_Name AS FromClient,
cl_from.Member_Id AS FromMid,
cl_to.Member_Id AS ToMid
FROM express_interests
INNER JOIN users AS cl_to ON cl_to.User_Id = express_interests.To_Id
INNER JOIN users AS cl_from ON cl_from.User_Id = express_interests.User_Id";
$result=$this->db->query($sql);
print_r($result->result());
die;