我有两个表(朋友和用户),我想得到所有用户的名单,但应该有明确的,无论是我的朋友与否,我目前的id是“81”
Friends
id user_id friend_id
32 81 169
33 81 170
34 83 171
用户
id first_name
81 byt
169 abc
170 def
171 xyz
我尝试了下面的代码,但我得到的用户只有谁在我的朋友名单,我想所有,但与状态/结果,这是我的朋友或不是
$this->db->select('friends.user_id,friends.friend_id,users.first_name,users.last_name,users.image');
$this->db->from('friends');
$this->db->join('users', 'users.id=friends.friend_id');
$this->db->where('friends.user_id', $add_data['user_id']);
2条答案
按热度按时间zazmityj1#
如果您想在mysql中完成这一切,则必须运行以下查询:
基本上,您使用一个特定用户的所有好友表来加入所有用户
id
. 然后你检查friend_id
是null
(由于左连接行为)。这里有一个例子。
0tdrvxhp2#
如果你想让他们都知道哪些是你的朋友,那么你需要用php处理。上面的查询将检索两个表中的所有信息。
现在继续前进:
这将使用您的
friend_ids
和你的相配user_id
. 基本上你在where子句中尝试的逻辑我是在php中做的,因为你想检索所有的逻辑。如果你想使用不在好友列表中的剩余数据,你可以使用
else
foreach循环中的语句。