2015-04-18 37 views
-1

从MySQL获得非匹配的列值,我有两个表userfriend_request我在哪里在friend request表,其中有2sender_id(谁发送请求)和receiver_id将使用user_id好友请求(谁接收请求)匹配两列,并使用PHP

现在问题从这里开始我想从userfriend_request表中获取所有记录,我正在使用join。我想从friend_request获得记录的地方session_id = sender_idsession_id = receiver_id现在我想如果session_id = sender_id是真的比我得到receiver_id如果session_id = receiver_id是真的比我想sender_id

下面是我试过的代码,是不正确的,我知道......请更正此MySQL查询

$this->db->select('*'); 
$this->db->from('friend_request'); 
$this->db->join('users', 'users.u_id = friend_request.sender_id'); 
$where = '(sender_id=' . $id . ' ' . 'or reciever_id =' . $id . ')'; 
$this->db->where($where); 
$query = $this->db->get(); 
return $query->result_array(); 
+0

$其中= “(SENDER_ID = $ ID或reciever_id = $ ID)”; – Saty

回答

1

不幸的是CodeIgniters本地的活动记录类不支持UNION SQL命令基本上是什么,我相信你正在尝试使用。

一个解决方案,(虽然它不是令人难以置信的与性能有关的效率)将做这样的事情:

$this->db->select('receiver_ID as friendID') 
     ->WHERE('sender_id',$id) 
     ->get('friend_request'); 
$q1 = $this->db->last_query(); 

$this->db->select('sender_ID as friendID') 
     ->WHERE('receiver_id',$id) 
     ->get('friend_request'); 
$q2 = $this->db->last_query(); 

return $this->db->query($q1 . " UNION " . $q2)->result_array(); 
+0

感谢它的工作! –

相关问题