0

所以我正在编写一个简单的测验脚本:用户获取问题列表并有 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 语句来检索所有可能的问题。不幸的是,它在某些时候出错了:当我回答所有问题时,第一个语句获得 0 行并触发下一个语句 + 如何在第一个表为空且没有可比较的情况下检查显示未回答的问题?

也许任何人都可以给出提示或帮助如何解决这个问题?提前谢谢!

4

1 回答 1

0

我假设而不是 q.accept = 1 它应该是 q.accept = 0 (accept = 1 (已回答) and accept = 0 (unanswered))

您可以使用此查询来解决不存在的问题

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))
于 2012-05-13T17:10:05.730 回答