MySQL投票计算

时间:2012-04-27 09:52:56

标签: mysql

我有一个应用程序,允许用户投票并有两个表

视频

|id|uri_code|filename|created_on|deleted|

投票

|id|video_id|ip|created_on|

我希望能够选择所有视频信息并获得每个视频的总投票数,这是否可以使用sql语句,或者我最好使用服务器端代码进行操作?

4 个答案:

答案 0 :(得分:2)

使用SQL肯定是可能的 - 这种东西正是SQL擅长的!您希望按视频“分组”所有投票的计数,因此GROUP BY子句正是您所追求的:

SELECT Video.*, COUNT(*)
FROM Video JOIN Votes ON Votes.video_id = Video.id
GROUP BY Video.id;

答案 1 :(得分:0)

select vi.*, count(vo.id) as votes
from video vi
inner join votes vo on vi.id = vo.video_id
group by vi.id

答案 2 :(得分:0)

也许是这样的:

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

答案 3 :(得分:0)

您好,您可以在这里使用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表示已删除的枚举类型值,您必须获取未删除的视频投票详细信息然后< / p>

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