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 に答える