我有两个表user
和friend_request
,我在friend request
表中使用user_id
插入好友请求,其中有2
列sender_id
(谁发送请求)和receiver_id
(谁接收请求)
现在问题从这里开始,我想从user
和friend_request
表中获取所有记录,我正在使用join。我想从friend_request
中获取记录,其中session_id
= sender_id
或session_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();
2条答案
按热度按时间wfsdck301#
不幸的是,CodeIgniters本机活动记录类不支持UNION SQL命令,我相信这正是您正在尝试使用的命令。
一个解决方案(尽管在性能方面效率不高)是这样做:
zdwk9cvp2#
要使用PHP从MySQL中匹配两个列并获取不匹配的列值,可以使用以下查询:
这里,table_name是要查询的表的名称,column_name是要检索其值的列的名称,column1_name是要匹配的第一列的名称,column2_name是要匹配的第二列的名称。
要使用PHP执行此查询,可以使用以下代码:
此代码将连接到数据库,执行查询,获取结果,并打印不匹配的列值。您需要将your_username、your_password、your_database、table_name、column_name、column1_name和column2_name替换为数据库和表的相应值。