首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有内部查询的mysql

问带有内部查询的mysql
EN

Stack Overflow用户
提问于 2012-06-04 17:23:56
回答 4查看 51关注 0票数 1

我有一个表,它存储来自调查的答案,我试图查询mysql来告诉我某个人是否回答了答案字段= 16或20

对于mysql语句,我有以下内容

代码语言:javascript
复制
SELECT DISTINCT(submissionID) as submissionID FROM answer 
WHERE EXISTS (
    SELECT *
    FROM answer
    WHERE submissionID = submissionID AND (answer = '16' OR answer = '20')

)

在这里编辑

对不起,我想我的问题说得不对,所以这是我的桌子结构:

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `answer` (
  `aID` int(11) NOT NULL AUTO_INCREMENT,
  `sID` int(11) NOT NULL,
  `qtID` int(11) NOT NULL,
  `answer` text NOT NULL,
  `userIP` text NOT NULL,
  `submissionID` int(11) NOT NULL,
  PRIMARY KEY (`aID`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=422 ;

  1. aID是每个答案的唯一id,given
  2. sID是调查id (因为我可能有多个survey)
  3. qtID是questionsID,value
  4. answer是用户给出的答案,survey
  5. userIP的qtID是self,explainable
  6. submissionID是ID,每个提交的

)

所以我知道在这个表中有5个唯一的submissionID,但是只有一个submssionID,答案字段= 16和20

EN

回答 4

Stack Overflow用户

发布于 2012-06-04 17:29:27

我认为您的查询过于复杂,请尝试如下:

代码语言:javascript
复制
SELECT DISTINCT submissionID FROM answer 
WHERE answer IN ('16', '20');
票数 1
EN

Stack Overflow用户

发布于 2012-06-04 17:29:21

“我的故障是什么?”

将子查询与外部查询相关联的条件:

代码语言:javascript
复制
submissionID = submissionID

永远都是真的。我不认为你真的需要它,为什么不写:

代码语言:javascript
复制
SELECT DISTINCT submissionID 
FROM answer 
WHERE answer = '16' OR answer = '20'

然而,我觉得你并没有给我们所有的信息。例如,我在您最初的查询中没有看到任何限制对特定问题的回答的内容。当然,如果调查只有一个问题,那是可能的,但我觉得这不是你的意思。精心设计..。

票数 0
EN

Stack Overflow用户

发布于 2012-06-04 17:30:59

我想你需要一个别名来表示其中一个从句中的答案表。像这样..。

代码语言:javascript
复制
SELECT DISTINCT(submissionID) as submissionID FROM answer a 
WHERE EXISTS (
    SELECT *
    FROM answer
    WHERE submissionID = a.submissionID AND (answer = '16' OR answer = '20')

)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10885415

复制
相关文章

相似问题

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