我基本上有三个不同类别的项目,我想在用户墙上显示:评级,评论和更新。这三个是完全不同的实体,但因为它们都可以出现在用户墙上,我只称它们为“wallitem”。 all都有一个timestamp属性,表示它们的创建日期。
我希望用户能够通过按时间戳排序的wallitems进行翻页。例如:最后10个壁垒。或者是wallitems 20到30.是否有一个MySQL查询给了我最后10个“wallitems”,即使所有不同的实体都有不同的列?
我可以想象,获取一个项目列表,其中每个项目具有所有不同实体的所有属性,一个定义类型的附加属性(例如“评级”),如果它实际上是评级,所有其他属性只是null。我想在我的PHP代码中使用这样的dicationary:
foreach ($wallItemArray as $item) {
if ($item['type'] == "rating") {
$rating = $item; // use it as normal "rating"-entity
} else if ($item['type'] == "comment") {
$comment = $item; // use it as normal "comment"
}
// and so on for all different entities that could represent a wallitem in this context
}
答案 0 :(得分:2)
像
这样的东西SELECT 'rating' AS type, value AS r_val, NULL AS c_val
FROM Rating
UNION
SELECT 'comment' AS type, NULL AS r_val, comment_text AS c_val
FROM Comment
会让你开始