为什么此查询以获取朋友不返回任何结果?

时间:2019-05-24 20:53:31

标签: sql

我有一个名为friends的表,其中包含3列:

user1id, user2id, status

Status是另一个表FriendshipStatuses的外键,其他两列都是user表的外键。

我尝试了一些不同的查询,这些查询导致错误并获得仍在请求中的友谊。我提供的查询未返回任何结果。

$userId包含当前登录的用户ID

SELECT
    users.username, 
    users.fullName, 
    users.user_id 
FROM 
    users 
WHERE 
    users.user_id IN (SELECT user1id, user2id
                      WHERE user1id = $userId 
                         OR user2id = $userId)

2 个答案:

答案 0 :(得分:0)

此代码没有任何用处:

SELECT user1id, user2id 
WHERE user1id=$userId 
OR user2id = $userId

您在其中缺少具有列FROMuser1id视图user2id。< / p>

答案 1 :(得分:0)

解决了这对我有用

SELECT users.username, users.fullName, users.user_id 
FROM users
WHERE 
  users.user_id IN (SELECT user2id FROM friendships WHERE user1id=21)
  OR 
  users.user_id IN (SELECT user1id FROM friendships WHERE user2id=21)