MySQL的投票计算
问题描述:
我有一个应用程序,它允许用户投票,并有两个表MySQL的投票计算
视频
|id|uri_code|filename|created_on|deleted|
投票
|id|video_id|ip|created_on|
我希望能够选择所有视频信息,并有每个视频的总票数,这是可能的一个SQL语句,或者我最好与服务器端代码做呢?
答
这当然是可能的SQL - 这样的事情是什么SQL是伟大的!你想“团”的视频由所有选票的计数,所以GROUP BY
条款正是你追求的:
SELECT Video.*, COUNT(*)
FROM Video JOIN Votes ON Votes.video_id = Video.id
GROUP BY Video.id;
答
select vi.*, count(vo.id) as votes
from video vi
inner join votes vo on vi.id = vo.video_id
group by vi.id
答
也许是这样的:
SELECT
Video.id,
Video.uri_code,
Video.filename,
Video.created_on,
Video.deleted,
(
SELECT
COUNT(*)
FROM
Votes
WHERE
Votes.video_id=Video.id
) AS Total
FROM
Video
答
嗨,您可以在这里使用MySQL查询
1.如果您有获取视频只占总票数没有任何其他条件,然后
SELECT count(Votes.id) AS total_vote, Video. *
FROM Video
LEFT JOIN Votes ON Video.id = Votes.video_id
WHERE Video.deleted = '1'
GROUP BY Video.id
2.如果你要获得总票数与例如一些条件删除的视频有非删除视频删除值0和值1 0 1的枚举类型,你必须得到未删除的视频投票详情那么
SELECT count(Votes.id) AS total_vote, Video. *
FROM Video
LEFT JOIN Votes ON Video.id = Votes.video_id
WHERE Video.deleted = '0'
GROUP BY video.id
ip是这里的票数吗? – Milee 2012-04-27 09:57:51