从多个表中选择结果

时间:2013-02-05 12:06:07

标签: php mysql

我正在创建一个社交网站。我有一个警报选项,需要根据它到达各个div的时间一起显示朋友请求和未读消息。实际上我缺乏关于如何显示来自两个表的结果的逻辑亲切地帮助我。

我的表是:

1)sk_friends=>[friendship_id, from_user_id, to_user_id, status,date]

状态包含acceptedpending作为值。

2)sk_messages=>[msg_id, from_user_id, to_user_id,text, date, status]

3 个答案:

答案 0 :(得分:0)

SELECT * FROM sk_friends JOIN sk_message ON sk_friends.from_user_id = sk_message.from_user_id

这将是从两个表中检索记录的基本查询..

试试这个......但不确定会对你有多大帮助

答案 1 :(得分:0)

如果您尝试同时提取待处理的好友请求和消息,您可能需要考虑添加更通用的“通知”样式表,或将它们作为单独的查询运行。

所以你可以按照以下方式找到一张桌子:

sk_notifications => [id, date, type, from_user, to_user, status]

其中包含两种类型的事件(新消息和新朋友请求) - 您的代码将负责根据通知类型提供不同的操作。

答案 2 :(得分:0)

朋友请求

请参阅下面的查询

select * from sk_friends where (logged_in_user_id in from_user_id or logged_in_user_id in to_user_id) and status='pending';

和消息未读

 select * from sk_messages where to_user_id=logged_in_user_id;