【问题标题】:Complex query join using Codeigniter使用 Codeigniter 的复杂查询连接
【发布时间】:2019-01-18 18:22:59
【问题描述】:

我有一个查询在 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');

当我使用它时,它会说

“字段列表”中的未知列“cl_to .User_Name”

在 codeigniter 中使用上述查询的正确方法是什么。

【问题讨论】:

    标签: php mysql codeigniter codeigniter-3 codeigniter-2


    【解决方案1】:
    $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
    ');
    

    表别名和列名之间不需要的间距

    【讨论】:

      【解决方案2】:

      替换

      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;
      

      【讨论】:

        猜你喜欢
        • 2011-10-21
        • 1970-01-01
        • 2010-11-02
        • 1970-01-01
        • 2023-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多