-1

我有两个不同结构的不同表。当用户执行操作 A 时,就该操作将一行插入到表 A 中,与表 B 的方式相同。当用户执行操作 B 时,将一行插入到表 B 中。

现在我有一个新闻提要,我想向其他朋友展示这两个动作。如何使用 MySQL 查询不同结构的两个表,然后使用 PHP 以时间排序的方式构造更新帖子?

就像在 Facebook 中一样,用户更新他的关系状态与他发布并附上照片的帖子不同,但它们都出现在同一个新闻源中,尽管它们的结构和它们携带的数据类型不同。如果有人能对此有所了解并讨论可能的解决方案,我将不胜感激。

4

1 回答 1

1

一般的方法是这样的:

SELECT
  'A' AS ActionType,
  ActionA_PK AS ActionPK,
  ActionA_Date AS ActionDate,
  <a description of action A> AS ActionDesc
FROM ActionA
UNION SELECT
  'B',
  ActionB_PK,
  ActionB_Date,
  <a description of action B>
FROM ActionB
ORDER BY ActionDate DESC

这会将不同的操作折叠在一起,并按日期对它们进行排序,最近的在前。您可以在前端显示它们,并且因为您有它们的类型(AB)和它们的主键,所以当它们的链接或按钮或任何被点击时,您可以在回发以进行处理时识别它们。

这里有一个SQLFiddle 示例

此处的另一个SQLFiddle 示例解释了表如何不需要具有相同的结构来使其工作。

于 2013-05-17T18:29:22.050 回答