所以我一直在寻找错误,但仍然无法找到它。
这是代码 -
$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'
答案 0 :(得分:2)
如果一个条目被反引号包围,即使它不是没有反对的列,它也会被视为一列。由于此原因,它认为1
是JOIN
行上的一列。
显然,这是CI中join
方法的产物。通过将该条件移动到WHERE
子句,您可以非常轻松地修复它。它不需要在JOIN
子句中。
答案 1 :(得分:0)
JOIN不起作用;语法是:
JOIN 'tablename' ON 'tablename.field' = 'othertable.field'
如果我不得不假设您正在尝试获取用户的朋友请求:
JOIN 'users' ON 'users'.'id' = 'friendRequests'.'receiverId'