Php Mysql多表联接以获取用户详细信息

Php Mysql多表联接以获取用户详细信息,php,mysql,join,Php,Mysql,Join,我有两张桌子: 表格-用户 userId || username || profileImage ------------------------------------ 1 || aa || aaaaa.png 2 || bb || bbbb.png 3 || cc || cccc.png 4 || dd || dddd.png 表格-关系 relationshipId ||

我有两张桌子:

表格-用户

userId ||  username ||  profileImage
------------------------------------
1      ||  aa       ||  aaaaa.png

2      ||  bb       ||  bbbb.png

3      ||  cc       ||  cccc.png

4      ||  dd       ||  dddd.png
表格-关系

relationshipId  ||  user1  ||  user2 ||  status
-----------------------------------------------
1               ||  1      ||  2    ||  0

2               ||  1      ||  3    ||  1

3               ||  1      ||  4    ||  1

4               ||  2      ||  4    ||  1
因此,我需要1发送请求的所有用户(3,4)的详细信息,并且状态被接受为1

我试过的东西:

$stmt = $this->db->prepare("
SELECT users.uId
     , users.username
     , users.profilePic 
  from users
  JOIN relationship 
 WHERE (relationship.user_one_Id = :profileUserId || relationship.user_two_Id=:profileUserId) 
   AND relationship.statusCode=:statusCode
   AND users.uId != :profileUserId 
 LIMIT 6
");

$stmt->bindvalue(":statusCode", 1);
$stmt->bindparam(":profileUserId", $profileUserId);
$stmt->execute(); 

但这个问题让我产生了争吵,包括那些我不是朋友的人。所以我哪里出错了。

我不明白
关系在哪里。用户Id
出现在图片中。我想你是想写
relationship.user1
?我还假设发送方存储在
user1
中。在这种情况下,您的查询过于复杂:

SELECT t.uId, t.username, t.profilePic
FROM users t
INNER JOIN relationship r
    ON (t.id = r.user2
        AND r.user1 = :profileUserId
        AND r.status = :statusCode
    )

什么是
$profileUserId
?它是我正在查看的配置文件的id。。我的个人资料是我自己的还是系统中任何其他用户的。请注意,如果我的假设是错误的,那么没有ORDER BY的限制是相当有意义的。如果我的假设是错误的,请告诉我:给定一个用户ID,你想检索与前者链接的每个用户的数据?@相反,这个问题意味着你的假设是错误的,但是失败的查询意味着你的假设是正确的,所以我不知道哪个是正确的。也。列名更改,这没有帮助。是的,user1是发送请求的用户的用户id,但这并不意味着可以在另一列(即user2列)中找到该用户的用户id,因为她可能也会从其他人那里得到请求并成为朋友。因此,这使得整个查询变得复杂。