如何将其他用户添加为好友?

时间:2011-10-17 21:24:35

标签: php sql

我有两张桌子。第一个表是Requests,它看起来像这个

+------------------------------+
|          Requests            |
+----+-------------+-----------+
| id |  user_from  |  user_to  |
+----+-------------+-----------+
|    |             |           |
|    |             |           |
|    |             |           |
|    |             |           |
+----+-------------+-----------+

当请求已发送且其他用户已接受时,他们会从请求表移动到朋友表中,因为他们知道他们现在确实是朋友。

这是我的朋友表:

+--------------------------------+
|            Friends             |
+----+-------------+-------------+
| id |   user_id   |  friend_id  |
+----+-------------+-------------+
|    |             |             |
|    |             |             |
|    |             |             |
|    |             |             |
+----+-------------+-------------+

现在我的问题是,我如何“移动”(一旦请求被接受)请求表中的数据到朋友表?

如果我想执行此操作,SQL查询将如何显示?

5 个答案:

答案 0 :(得分:2)

SQL没有'move'命令。只有插入和删除。你想要使用一个交易:

start transaction;
insert into friends ...
delete from requests ...
commit;

答案 1 :(得分:1)

你根本不“移动”它。你插入一个,并从另一个删除。在事务中执行以确保它以原子方式发生。

答案 2 :(得分:1)

INSERT INTO查询后跟DELETE FROM查询?如果你有Requests.id,就像

一样
INSERT INTO Friends (user_id, friend_id) SELECT Requests.user_id, Requests.friend_id FROM Requests WHERE Requests.id = $Your_ID;
DELETE FROM Requests where id = $Your_ID

答案 3 :(得分:1)

添加另一个名为accepted的列,该列最初为false。

+-------------------------------------------+
|            Friends                        |
+----+-------------+-------------+----------+
| id |   user_id   |  friend_id  | accepted |
+----+-------------+-------------+----------+
|    |             |             |          |
|    |             |             |          |
|    |             |             |          |
|    |             |             |          |
+----+-------------+-------------+----------+

现在您无需移动任何内容 - 只需将字段更新为TRUE

答案 4 :(得分:0)

  

我如何“移动”(一旦请求被接受)来自THE的数据   申请表到朋友表???

通过在请求表上执行DELETE并在friends表中执行INSERT。实际上,您可能希望执行两个插入,并使角色反转,以使查询更简单。