Php Codeigniter:如何在3个表之间建立描述顺序?
所以我使用CodeIgniter和DataMapper。我制作了一个类似墙的东西,在那里你可以查看文章链接帖子图片帖子。这是3个不同的表,每个表都有一个名为“pubdate”的列。当您查看所有文章都显示在墙上,并且有旧文章,但有较新的链接文章,因为它们不“共享”相同的pubdate,并且每个表的顺序都正确Php Codeigniter:如何在3个表之间建立描述顺序?,php,mysql,codeigniter,codeigniter-datamapper,Php,Mysql,Codeigniter,Codeigniter Datamapper,所以我使用CodeIgniter和DataMapper。我制作了一个类似墙的东西,在那里你可以查看文章链接帖子图片帖子。这是3个不同的表,每个表都有一个名为“pubdate”的列。当您查看所有文章都显示在墙上,并且有旧文章,但有较新的链接文章,因为它们不“共享”相同的pubdate,并且每个表的顺序都正确 有没有办法让它们成为共享的pubdate,这样当我上传一个新的图片贴到我的网页顶部时?你可以连接每个表并从这些表中选择行。然后,你可以合并这些数组并按日期排序。我想,这是最糟糕的想法,但很可能
有没有办法让它们成为共享的pubdate,这样当我上传一个新的图片贴到我的网页顶部时?你可以连接每个表并从这些表中选择行。然后,你可以合并这些数组并按日期排序。我想,这是最糟糕的想法,但很可能运行成功
此外,您可以将这些表与一个具有ID的墙表连接起来,并且InsertionDate您可以通过这些字段创建墙提要。您的解决方案是UNION。因为您从三个不同的表中获取数据,而这三个表之间没有关系,所以最好使用
联合
。另外,codeigniter的活动记录
不支持联合
,因此您必须编写整个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);
这在DataMapperPHP for CodeIgniter中会是什么样子?目前,我的控制器中有3个循环,而且我正在使用Codeigniter的解析模板。