从多个表中选择结果


Select results from multiple tables

我正在创建一个社交网站。我有一个警报选项,它需要根据好友请求和未读消息到达各个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]
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;