我完全能够得到所有的登录用户当前的朋友,这是我此查询这里做 -如何获取登录用户不是MySQL中的所有用户?
SELECT users.*
FROM users
LEFT JOIN friends
ON users.id = friends.friend_id
WHERE friends.user_id = $user_logged_in_id
但我想要做的相反,我也搞不清楚。
我想要做朋友的逻辑。
我需要得到所有谁是当前登录用户的用户尚未朋友
我有一个用户表和朋友表作为一个多用户和他们的朋友之间一对多的关系。 friends表中的键是user_id friend_id。
为了说明某人是我与其他用户的朋友(说登录的用户ID是3,朋友的用户ID是6)user_id = 3
和friend_id = 6
作为一行,然后把另一行与ID的翻转来说明友谊的另一种方式,user_id = 6
和friend_id = 3
。
用户表
|---------------------|------------------|
| id | username |
|---------------------|------------------|
| 1 | sonja12 |
|---------------------|------------------|
| 2 | dorris32 |
|---------------------|------------------|
| 3 | billy32 |
|---------------------|------------------|
| 4 | micha97 |
|---------------------|------------------|
| 5 | travis841 |
|---------------------|------------------|
| 6 | johnny28 |
|---------------------|------------------|
朋友表
|---------------------|------------------|------------------|
| id | user_id | friend_id |
|---------------------|------------------|------------------|
| 1 | 3 | 6 |
|---------------------|------------------|------------------|
| 2 | 6 | 3 |
|---------------------|------------------|------------------|
编辑:
我想我已经缩小我的问题有点更简洁。
我想从用户表中获取所有用户,其中他们的ID不会显示为朋友表中当前登录用户的user_id旁边的朋友ID。
更具体。现在看起来像'... WHERE friends.user_id!= $ user_logged_in_id“'会修复它,但我假设,这没有奏效? – SourceOverflow
不,返回除登录用户以外的所有人,并且它返回用户登录的用户已经是朋友的两倍 我希望能够看到登录用户不是朋友的列表,以便他们可以轻松点击“添加朋友按钮”并添加新朋友。返回所有用户并排除那些已经登录的用户已经是朋友,但我觉得像普通的sql会是一个更好的方式去这样的事情。 –