Php MySQL查询显示问题

Php MySQL查询显示问题,php,mysql,Php,Mysql,如何使用MySQL表在users和friends端正确显示用户朋友?我现在的代码搞砸了 用户朋友表 用户表 我当前的MySQL代码 尝试此查询。这将根据您的数据库关系为特定用户提供所有好友 SELECT A.user_id, A.friend_id, B.username, B.avatar FROM users_friends AS A INNER JOIN users AS B ON A.friend_id = B.user_id AND A.user_id

如何使用MySQL表在users和friends端正确显示用户朋友?我现在的代码搞砸了

用户朋友表

用户表

我当前的MySQL代码


尝试此查询。这将根据您的数据库关系为特定用户提供所有好友

SELECT     A.user_id, A.friend_id, B.username, B.avatar
FROM         users_friends AS A 
INNER JOIN   users AS B 
ON A.friend_id = B.user_id 
AND A.user_id = @userToBeSearched

UNION

SELECT    A.friend_id, A.user_id, B.username, B.avatar
FROM         users_friends AS A 
INNER JOIN users AS B 
ON B.user_id = A.user_id 
AND A.friend_id = @userToBeSearched
注意:我现在删除了Group By子句,因为

  • 恐怕我不太了解您的模式,无法理解您为什么只按创建日期对行进行分组

  • 添加grouping子句将涉及创建另一个嵌套表,因为您将无法选择不在Group子句中的列

  • 用于测试的数据:-

    表:
    用户

    user_id |username| avatar | password
    1   A   AAAA
    2   B   BBBB
    3   C   CCCCC
    4   D   DDDDD
    
    表:
    user\u friends

    id | user_id | friend_id | friendship_status | date_created 
    1   1   2   1   Friday, October 22, 2010 3:09:44 PM
    2   2   3   1   Friday, October 22, 2010 3:43:18 PM
    3   2   4   1   Friday, October 22, 2010 3:43:26 PM
    

    除了没有消毒,我觉得还可以。出什么事了?它在好友端显示的好友头像、姓名和链接都是错误的。你能告诉我你看到了什么以及你希望看到什么吗?假设用户1好友用户2用户1正确显示了好友的图片、用户名和链接,而不是用户2。用户2将自己的pic、用户名和链接显示为自己的朋友。我如何将
    选择A.User\u id、A.friend\u id、B.username、B.avatarSELECT
    转换为
    选择用户。*、用户\u朋友。*
    只需将选择部分改为选择A.*、B.*。但是,由于两个表中都有User\u id列,它可能会导致一些问题,因为它将是模糊的。我建议您将所需的所有列都放在这两个SELECT语句中
    SELECT     A.user_id, A.friend_id, B.username, B.avatar
    FROM         users_friends AS A 
    INNER JOIN   users AS B 
    ON A.friend_id = B.user_id 
    AND A.user_id = @userToBeSearched
    
    UNION
    
    SELECT    A.friend_id, A.user_id, B.username, B.avatar
    FROM         users_friends AS A 
    INNER JOIN users AS B 
    ON B.user_id = A.user_id 
    AND A.friend_id = @userToBeSearched
    
    user_id |username| avatar | password
    1   A   AAAA
    2   B   BBBB
    3   C   CCCCC
    4   D   DDDDD
    
    id | user_id | friend_id | friendship_status | date_created 
    1   1   2   1   Friday, October 22, 2010 3:09:44 PM
    2   2   3   1   Friday, October 22, 2010 3:43:18 PM
    3   2   4   1   Friday, October 22, 2010 3:43:26 PM