假设我有2个表,消息和产品。每当用户发布新产品或消息时,订阅该特定用户的用户都将更新其订阅源。它类似于Facebook提要。
问题是如何组合来自2个不同表格Message and Product的记录来制作新闻Feed,Feed必须按发布日期排序。
我认为使用纯SQL很难做到,或者我可能需要另一个表并在创建新产品或消息时插入新行?
感谢阅读,希望能在这里得到一些帮助,thnx !!
答案 0 :(得分:1)
要在SQL中执行此操作,您需要执行表连接。在这种情况下,您希望按用户加入消息和产品。
这是指向编码恐怖页面的链接,这是我见过的联接的最佳解释,A Visual Explanation of SQL Joins
答案 1 :(得分:1)
查找消息和产品的常见内容,例如它们都是帖子的类型,因此您可以使用以下内容:
帖子表中包含所有帖子共有的列;消息和产品表只包含特定于每个列的列。
的更新强>
获取消息(2009-11-10 15:00之后更改)
SELECT *
FROM Message AS m
JOIN Post as AS p ON p.PostID = m.PostID
WHERE p.LastChanged > '2009-11-10 15:00'
获取产品(2009-11-10 15:00之后更改)
SELECT *
FROM Product AS d
JOIN Post as AS p ON p.PostID = d.PostID
WHERE p.LastChanged > '2009-11-10 15:00'
在不适用于邮件或产品的列中使用NULLS获取所有一个表。
SELECT *
FROM Post AS p
LEFT JOIN Message AS m p.PostID = m.PostID
LEFT JOIN Product AS d ON p.PostID = d.PostID
WHERE p.LastChanged > '2009-11-10 15:00'