查找特定用户尚未投票的所有民意调查

时间:2011-04-10 10:20:50

标签: mysql

我有一个网站,在投票后向注册用户显示民意调查,并将他的投票存储在一个表格中。 数据库的一个简单结构如下(有更多字段,但它们对问题没有多大贡献,所以我删除了它们):

投票(pollId)

投票(pollId,userId,投票)

现在我想运行一个MySql查询来选择“民意调查”表中的所有民意调查,除了当前用户已经投票的民意调查(可以从'投票'表中确定)

是否可以单独使用MySql select语句,或者我必须首先选择所有民意调查,并使用一些Php逻辑来过滤掉用户已经投票的那些?

提前致谢!

2 个答案:

答案 0 :(得分:0)

SELECT *
  FROM Pools
 WHERE id NOT IN (
       SELECT poolId
         FROM Votes
        WHERE userId = 142
       )

答案 1 :(得分:0)

尝试这样的事情:

select p.pollid from polls p where p.pollid not in (select v.pollid from votes v where userId = {USERID})