从2个表中筛选SQL语句

时间:2012-05-13 17:00:16

标签: mysql sql

所以我正在编写一个简单的测验脚本:用户获取问题列表并有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!

1 个答案:

答案 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))