首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL选择计数(从另一个表中)大于X的项

MySQL选择计数(从另一个表中)大于X的项
EN

Stack Overflow用户
提问于 2014-07-30 17:45:20
回答 2查看 654关注 0票数 1

下面的情况:我有一个用户和装备的列表,每个用户可以创建N套。用户可以投票选择他们的装备。

现在我想列出所有的装备和用户。这个很好用。但是,如果我想列出每个/所有用户的所有装备,达到所需票数。所以count_votes > required_votes。

这就是我所得到的,但它显然给了我一个错误:

代码语言:javascript
复制
SELECT ay_users.*, 
       ay_users_outfits.*, 
       COUNT(ay_votes.voteId) AS countvotes 
FROM   ay_users_outfits, 
       ay_users, 
       ay_votes
WHERE  ay_users_outfits.outfitUserId = ay_users.userId 
AND    ay_votes.voteOutfitId = ay_users_outfits.outfitId 
AND    ay_users_outfits.outfitRequiredVotes <= countvotes
ORDER BY ay_users_outfits.outfitCreationDate ASC

#1054 - Unknown column 'countvotes' in 'where clause' 

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-30 17:48:40

看看这个:http://dev.mysql.com/doc/refman/5.0/en/group-by-extensions.html

您将需要使用something子句,如下所示

代码语言:javascript
复制
SELECT 
    ay_users . *,
    ay_users_outfits . *,
FROM
    ay_users_outfits,
    ay_users,
    ay_votes
WHERE
    ay_users_outfits.outfitUserId = ay_users.userId AND 
    ay_votes.voteOutfitId = ay_users_outfits.outfitId

GROUP BY ay_users.userId
HAVING ay_users_outfits.outfitRequiredVotes <= COUNT(ay_votes.voteId)
ORDER BY ay_users_outfits.outfitCreationDate ASC
票数 2
EN

Stack Overflow用户

发布于 2014-07-30 17:47:58

原因是不存在列countvotes,并且在where子句中使用它.

您必须在where子句中使用COUNT(ay_votes.voteId)

代码语言:javascript
复制
AND    ay_users_outfits.outfitRequiredVotes <= COUNT(ay_votes.voteId)

不能在where子句中使用(命名)计算

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25043514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档