所以我正在编写一个简单的测验脚本:用户获取问题列表并有2个可能的答案。 我有2张桌子: 1)包含用户ID和问题ID
user | question_id
2)包含问题数据库,答案,每个答案的投票数以及是否接受qiven问题(可在公开列表中查看)
id | question | answer1 | answer2 | a1count | a2count | accept
我的sql语句有问题 - 现在我写了这个(用户ID是常量atm): (用户应该只获得那些尚未回答的问题)
SELECT *
FROM questions as q, answers as a
WHERE a.user = 2
AND a.question_id <> q.id
AND q.accept = 1
如果这个结果有0行,我把if和if语句检索所有可能的问题。 不幸的是,它在某些方面出错:当我回答所有问题时,第一个语句获得0行,下一个语句被触发+当第一个表为空且无法与之比较时如何检查显示未答复的问题?
任何人都可以给出提示或帮助解决这个问题吗?提前thx!答案 0 :(得分:0)
我假设不是q.accept = 1,它应该是q.accept = 0(接受= 1(已回答)和接受= 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))