我正在创建一个社交网站。我有一个警报选项,它需要根据好友请求和未读消息到达各个div的时间一起显示。实际上,我对如何显示两个表的结果缺乏逻辑性。请帮帮我。
我的桌子是:
1)sk_friends=>[friendship_id, from_user_id, to_user_id, status,date]
状态包含accepted
或pending
作为值。
2)sk_messages=>[msg_id, from_user_id, to_user_id,text, date, status]
SELECT * FROM sk_friends JOIN sk_message ON sk_friends.from_user_id = sk_message.from_user_id
这将是从两个表中检索记录的基本查询。。
试试这个。。但不确定有多大帮助
如果您试图同时提取挂起的好友请求和消息,您可能需要考虑添加一个更通用的"通知"样式表,或者将它们作为单独的查询运行。
因此,你可以选择一张如下的表格:
sk_notifications => [id, date, type, from_user, to_user, status]
它将包含两种类型的事件(新消息和新朋友请求),然后您的代码将负责根据通知类型提供不同的操作。
有关好友请求,请参阅下面的查询
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;