因此,我正在编写一个简单的测验脚本:用户获得问题列表,并有两个可能的答案。我有两个表: 1)包含用户id和问题id
user | question_id
2)包含问题数据库,包含答案,每个答案的票数,以及是否接受qiven问题(可在公共列表中查看)
id | question | answer1 | answer2 | a1count | a2count | accept
我的sql语句有一个问题-现在我写了这个(用户id是常量自动取款机):(用户应该只得到那些尚未得到回答的问题)
SELECT *
FROM questions as q, answers as a
WHERE a.user = 2
AND a.question_id <> q.id
AND q.accept = 1
如果结果有0行,我放入if语句来检索所有可能的问题。不幸的是,在某些时候它出错了:当我回答所有问题时,第一条语句得到0行,下一条语句被触发+当第一个表是空的并且没有任何可比较的时候,如何检查显示未回答的问题?
也许有人可以给出一个提示或帮助如何解决这个问题?提前谢谢你!
发布于 2012-05-14 01:10:06
我假设不是q.accept =1,而是q.accept =0 (accept =1(已应答)和accept =0(无应答))
您可以使用下面的查询来解决不存在的问题
select * from questions where accept = 0 and NOT EXISTS (Select id from answers where user_id = 2 and id IN (select question_id from questions))
https://stackoverflow.com/questions/10573550
复制相似问题