我有一个网站,在投票后向注册用户显示民意调查,并将他的投票存储在一个表格中。 数据库的一个简单结构如下(有更多字段,但它们对问题没有多大贡献,所以我删除了它们):
投票(pollId)
投票(pollId,userId,投票)
现在我想运行一个MySql查询来选择“民意调查”表中的所有民意调查,除了当前用户已经投票的民意调查(可以从'投票'表中确定)
是否可以单独使用MySql select语句,或者我必须首先选择所有民意调查,并使用一些Php逻辑来过滤掉用户已经投票的那些?
提前致谢!
答案 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})