MySQL寻找多个ID

时间:2012-01-08 21:29:13

标签: php mysql

我正在尝试制作新闻Feed而且我被困住了。 假设我有一个MySQL表,其中包含一些名为table friends的数据:

让我说我有这个名为table status

的状态

例如,我的用户ID与friend_1上的friend_2friends以及uid的{​​{1}}相关。我需要使用哪些MySQL查询才能看到status中哪些朋友拥有friends中的数据行?

2 个答案:

答案 0 :(得分:2)

SELECT status.*
FROM status, friends
WHERE (friend_2 = uid AND friend_1 = <your_id>) 
OR (friend_1 = uid AND friend_2 = <your_id>);

如果每个友谊插入2行(和) - 您不需要OR (...)

答案 1 :(得分:1)

这将为当前用户的朋友选择所有状态。

SELECT s.*
FROM status s
INNER JOIN friends f ON f.friend_2 = s.uid
WHERE f.friend_1 = your_current_user;

另外我建议不要双向处理友情链接。制作单独的链接。例如,如果用户1和5是朋友,则您将拥有两条记录。

| friend_1 | friend_2 |
|    1     |    5     |
|    5     |    1     |

这增加了存储空间,但简化了查询。如果需要,它还可以实现单方面的友谊。 : - )