0

我需要一些帮助来编写 Laravel 3 中的频繁查询。

我有一个名为“投票”的表格,它将用户投票存储在“帖子”中。

所以,“votes”表有一个“user_id”、“post_id”和“timestamp”。

现在我需要编写一个查询来显示“趋势”帖子(在某个时间范围内)。我的逻辑是首先选择在所需时间范围内添加的记录(例如最近 30 天),然后按 post_id 对记录进行分组,然后按计数对它们进行排序。

我可以分别为每个条件编写查询..但我不知道如何将所有这些条件合并到一个查询中。

基本上...我只是希望有人为此 SQL 编写一个频繁的查询

SELECT post_id, COUNT(*)
FROM votes
GROUP BY post_id
ORDER BY COUNT(*) DESC

任何形式的帮助将不胜感激。

谢谢你。:)

4

2 回答 2

1

通过频繁查询生成器,我假设您指的是 Fluent Query Builder。

使用 Fluent Query Builder 你会得到这样的东西:

拉拉维尔 3:

$results = DB::table('votes')->get(array('post_id','count(*)'))->group_by('post_id')->order_by('count(*)','desc')->get();

Laravel 4:

$results = DB::table('votes')->select('post_id','count(*)')->groupBy('post_id')->orderBy('count(*)','desc')->get();

希望这可以帮助!祝你好运!

于 2013-08-24T03:12:31.947 回答
0

我猜你正在寻找这样的东西。

SELECT 
p.post_id, COUNT(*)
FROM 
posts p
LEFT JOIN
votes v
WHERE p.add_date_time > DATE_SUB( CURRENT_DATE() , INTERVAL 30 DAY)
GROUP BY p.post_id
ORDER BY COUNT(*) DESC
于 2013-07-06T19:00:06.080 回答