2013-07-06 46 views
0

寫頻繁的查詢,我需要一點點幫助Laravel 3需要幫助Laravel 3

寫頻繁查詢我有一個表稱爲「票」存儲用戶票「上崗」。

所以,「票」表具有「user_id」,「post_id」和「timestamp」。

現在我需要編寫一個查詢來顯示「趨勢」的帖子(在某個時間段內)。我的邏輯是首先選擇在所需時間範圍內添加的記錄(比如說最近30天),然後按照post_id對記錄進行分組,然後通過計數排序。

我可以分別爲每個條件編寫查詢..但我無法弄清楚如何將所有這些條件合併到單個查詢中。

基本上......我只是想一個人寫一個頻繁的查詢這個SQL

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

任何形式的幫助將非常感激。

謝謝。 :)

+0

到目前爲止你有什麼疑問?另外,如果你用'mysql'標籤問這個問題,你可能會有好運氣,因爲它不一定專用於Laravel。 – fideloper

+0

@fideloper我編輯了我的問題。請檢查!! :) –

回答

1

通過頻繁的查詢生成器,我想你指的是流利的查詢生成器。

用流利的查詢生成器,你會是這樣的:

Laravel 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(); 

希望這有助於!祝你好運!

+0

感謝您的回答。 我爲這個愚蠢的錯誤道歉。我甚至沒有意識到我正在頻繁寫作。 :d –

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 
+0

是的。我的查詢看起來像這樣。但我需要寫這是頻繁的查詢生成器。你可以幫我嗎? –

+0

你是什麼意思的「頻繁查詢生成器」? – Manu