【问题标题】:MySQL query problemMySQL查询问题
【发布时间】:2010-10-22 00:13:32
【问题描述】:

当用户发送好友请求并接受它时,好友信息和图片在用户端完美显示,但在好友端显示的是好友自己的图片和信息,而不是与好友成为好友的用户我该如何解决这个问题?

用户好友表

CREATE TABLE users_friends (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  user_id INT UNSIGNED UNSIGNED NOT NULL,
  friend_id INT UNSIGNED NOT NULL,
  friendship_status TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
  date_created DATETIME NOT NULL,
  PRIMARY KEY (id),
  KEY user_id (user_id),
  KEY friend_id (friend_id)
);

我当前的 MySQL 代码

  SELECT users.*, 
         users_friends.*
    FROM users
    JOIN users_friends ON users.user_id = users_friends.friend_id 
   WHERE (   users_friends.user_id = '" . $user_id . "' 
          OR users_friends.friend_id = '" . $user_id . "')
     AND users_friends.friendship_status = 1
GROUP BY users_friends.date_created

【问题讨论】:

    标签: sql mysql


    【解决方案1】:

    不能对这两个任务使用相同的查询。

    也就是说,您可以使用相同的查询,

    但是

    当您添加数据时(在用户接受好友请求时),您必须在用户好友表中添加两行。

    编辑,更详细的解释

    现在,当用户 a 朋友用户 b 时,您向用户朋友表添加一个条目

    用户 a 是用户 b 的朋友。

    如果你也添加

    用户 b 是用户 a 的朋友(

    除了更改之外,您可以使用与上面相同的查询

    WHERE (   users_friends.user_id = '" . $user_id . "' 
              OR users_friends.friend_id = '" . $user_id . "')
    

    WHERE (   users_friends.user_id = '" . $user_id . "' )
    

    或者,您可以编写具有以下逻辑的 sql(两种情况)。

    • 我有一个朋友,我已加为好友 和
    • 我是一个朋友。

    现在你做别的事情。

    【讨论】:

    • 你的意思是什么,你有什么建议。
    • 我是朋友的朋友代码看起来应该从哪里开始?
    • 你在说用户朋友表的两行是什么。
    • 现在好友端什么都没有显示,只有用户端:(
    猜你喜欢
    • 2011-11-14
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2011-04-22
    相关资源
    最近更新 更多