首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL语句从2个表中过滤

SQL语句从2个表中过滤
EN

Stack Overflow用户
提问于 2012-05-14 01:00:16
回答 1查看 62关注 0票数 0

因此,我正在编写一个简单的测验脚本:用户获得问题列表,并有两个可能的答案。我有两个表: 1)包含用户id和问题id

代码语言:javascript
运行
复制
user | question_id

2)包含问题数据库,包含答案,每个答案的票数,以及是否接受qiven问题(可在公共列表中查看)

代码语言:javascript
运行
复制
id | question | answer1 | answer2 | a1count | a2count | accept

我的sql语句有一个问题-现在我写了这个(用户id是常量自动取款机):(用户应该只得到那些尚未得到回答的问题)

代码语言:javascript
运行
复制
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行,下一条语句被触发+当第一个表是空的并且没有任何可比较的时候,如何检查显示未回答的问题?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-14 01:10:06

我假设不是q.accept =1,而是q.accept =0 (accept =1(已应答)和accept =0(无应答))

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

代码语言:javascript
运行
复制
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))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10573550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档