选择消息,计算平均投票数并知道用户是否已经投票

时间:2013-07-21 05:51:22

标签: mysql database

我有一张表格,其中包含有关网站各种信息投票的信息。 该表格称为投票,由以下内容构成: ID,messageID,userID,vote

我希望从“消息”表中检索所有数据,计算“投票”表中的平均投票,并知道指定的用户(检查用户ID到“投票”表)是否已经投票。这是检索邮件和各自平均投票的查询

select m.*, AVG(votes) as average_valuation from messages m 
left join votations v on v.messageID = m.id 
group by m.id

假设我收到的userID有POST数据,那么在LEFT JOIN过程中,查询应该告诉我他是否已经投了一条消息。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

尝试子查询

select 

m.*,
(
select count(1) from messages m1
where m1.id=m.id
and m1.userid=@userid
) as VotedAlready,

AVG(votes)
as average_valuation from messages m 
group by m.id

类似......

您还可以添加其他查询。