2013-04-17 34 views
0

我想开发某种票务系统,但我遇到了一小部分的麻烦。通过最近的评论日期订购职位

因此,我们有讨论,储​​存在“讨论”表,该表是为了通过UNIX时间戳列“created_at”

然后,我有“意见”表,其中有票的响应。

我想要做的是根据最近的活动基本订购门票。

我不是那种善于在查询中连接表,这是我试过,但它并不可悲工作:/

SELECT * 
FROM (`discussions`) 
JOIN `comments` ON `comments`.`object_id` = `discussions`.`id` 
WHERE `project_id` = '2' 
    AND `comments`.`type` = 'discussion' 
ORDER BY `comments`.`created_at` ASC, 
     `discussions`.`created_at` DESC 

我使用笨,这是活动记录代码

$query = $this->db->where('project_id', $id) 
         ->join('comments', 'comments.object_id = discussions.id') 
         ->where('comments.type', 'discussion') 
         ->order_by('comments.created_at', 'asc') 
         ->order_by('discussions.created_at', 'desc') 
         ->get('discussions'); 

非常感谢您的帮助!

+0

对于最新成果必须通过DESC不ASC顺序您设置了.. – Svetoslav

+0

是啊,是我不好。我忘了复制好的代码,但是这两个命令都是DESC完成的。 –

回答

0

尝试此查询

SELECT * FROM discussions d, comments c 
where c.object_id = d.id 
and project_id = '2' 
AND c.type = 'discussion' 
ORDER BY c.created_at,d.created_at desc 
+0

嘿Ankur!真的很接近,但现在它重复每个评论的讨论。我有两个公开的讨论,但我得到四个,等等。 –

+0

在** ORDER BY之前**尝试添加** GROUP BY d.id ** – Sasha