Codeigniter:如何在3个表之间进行描述顺序?

时间:2014-05-06 18:59:20

标签: php mysql codeigniter codeigniter-datamapper

所以我使用的是CodeIgniter和DataMapper。我制作了类似墙的内容,您可以在其中查看文章 链接帖子 图片信息。这是3个不同的表,每个表都有一个名为'pubdate'的列。当您查看显示所有这些内容的墙并且有旧文章但更新链接帖子时,因为他们不“共享”相同的发布日期和它是为每个表单独订购的。

当我上传新的图片帖子到我的Wall页面顶部时,如何使用共享的pubdate制作它们的任何想法?

2 个答案:

答案 0 :(得分:2)

您的解决方案是UNION。由于您从3个不同的表中获取数据并且它们之间没有关系,因此最好使用UNION。 codeigniter的active record也不支持UNION,所以你必须编写整个sql查询。看看这个 -

$sql = "(SELECT colA, colB, pubdate as dt FROM articles) UNION
        (SELECT colM, colN, pubdate as dt FROM link_posts) UNION 
        (SELECT colX, colZ, pubdate as dt FROM image_posts)
        ORDER BY dt DESC
       ";

$query = $this->db->query($sql);

答案 1 :(得分:0)

您可以连接每个表并从这些表中选择行。之后,您可以合并这些数组并按日期排序。我认为,这是最糟糕的想法,但它'最有可能成功。

此外,您可以将这些表与一个具有 ID InsertionDate 的Wall表连接起来,您可以通过这些字段创建墙信息源。