2015-02-09 59 views
1

我使用Laravel創建一個網站,我的用戶可以發佈問題,其他用戶可以在帖子下面寫下他們的評論,每個評論有投票和投票,用戶可以投票評論。像Laravel的結構表一樣顯示頂部最受歡迎的內容

我最需要的喜歡(最多投票)顯示禮帽比別人..

這是我的數據庫結構和我一起加入他們的行列:

評語表:

comment_id | question_id | user_id | timestamp 

上下選票表(如):

like_id | comment_id | like_type | user_id | timestamp 

注:like_type是在MySQL枚舉和它的值是給予好評downvote

1-什麼是MySQL查詢和Laravel代碼?

2-我的數據庫結構是否正確?

回答

1

1.Calculate SUM屬於每個評論

2.Make它以便通過說明

select * from (
select ct.comment_id,ct.question_id, 
ct.user_id,SUM(case when vt.like_type='upvote' then 1 else -1 end) 
cnt from commenttable ct 
from votestable 
vt left join 
on 
vt.comment_id=ct.comment_id 
)D order by D.cnt desc 
+0

真的謝謝,真的。這不是很慢嗎? – LASH 2015-02-09 08:12:07

+0

你可以檢查並讓我知道它不會很慢 – 2015-02-09 08:18:21

+0

'ct'和'cnt'和'vt'是什麼?有什麼文章可以閱讀和學習SQL嗎? – LASH 2015-02-09 08:19:38