1

所以我一直在寻找错误一段时间,但仍然找不到。

这是代码 -

        $this->db->select('*');
        $this->db->from('friendRequests');
        $this->db->where(array('friendRequests.status' => 1, 'users.status' => 1)); 
        $this->db->or_where(array('friendRequests.senderId' => $this->session->userdata('userId'), 'friendRequests.receiverId' => $this->session->userdata('userId'))); 
        $this->db->join('users', 'users.id = '.$this->session->userdata('userId'));             
        $query = $this->db->get();

它给了我这个错误-

Unknown column '1' in 'on clause'

SELECT *
  FROM (`friendRequests`) 
  JOIN `users` ON `users`.`id` = `1`
 WHERE `friendRequests`.`status` = 1
   AND `users`.`status` = 1 
    OR `friendRequests`.`senderId` = '1' 
    OR `friendRequests`.`receiverId` = '1'
4

2 回答 2

2

如果一个条目被反引号包围,即使没有反引号它也不会是一列,它也算作一列。因此,它认为那1是行上的一列JOIN

显然这是joinCI 方法的产物。您可以通过将该条件移至WHERE子句来非常轻松地修复它。没有必要在JOIN子句中。

于 2012-09-25T16:10:07.770 回答
0

JOIN 不是那样工作的;语法是:

JOIN 'tablename' ON 'tablename.field' = 'othertable.field'

如果我不得不假设您正在尝试获取用户的好友请求:

JOIN 'users' ON 'users'.'id' = 'friendRequests'.'receiverId'
于 2012-09-25T16:09:39.790 回答