我有一个表,它存储来自调查的答案,我试图查询mysql来告诉我某个人是否回答了答案字段= 16或20
对于mysql语句,我有以下内容
SELECT DISTINCT(submissionID) as submissionID FROM answer
WHERE EXISTS (
SELECT *
FROM answer
WHERE submissionID = submissionID AND (answer = '16' OR answer = '20')
)在这里编辑
对不起,我想我的问题说得不对,所以这是我的桌子结构:
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 ;aID是每个答案的唯一id,givensID是调查id (因为我可能有多个survey)qtID是questionsID,valueanswer是用户给出的答案,surveyuserIP的qtID是self,explainablesubmissionID是ID,每个提交的)
所以我知道在这个表中有5个唯一的submissionID,但是只有一个submssionID,答案字段= 16和20
发布于 2012-06-04 17:29:27
我认为您的查询过于复杂,请尝试如下:
SELECT DISTINCT submissionID FROM answer
WHERE answer IN ('16', '20');发布于 2012-06-04 17:29:21
“我的故障是什么?”
将子查询与外部查询相关联的条件:
submissionID = submissionID永远都是真的。我不认为你真的需要它,为什么不写:
SELECT DISTINCT submissionID
FROM answer
WHERE answer = '16' OR answer = '20'然而,我觉得你并没有给我们所有的信息。例如,我在您最初的查询中没有看到任何限制对特定问题的回答的内容。当然,如果调查只有一个问题,那是可能的,但我觉得这不是你的意思。精心设计..。
发布于 2012-06-04 17:30:59
我想你需要一个别名来表示其中一个从句中的答案表。像这样..。
SELECT DISTINCT(submissionID) as submissionID FROM answer a
WHERE EXISTS (
SELECT *
FROM answer
WHERE submissionID = a.submissionID AND (answer = '16' OR answer = '20')
)https://stackoverflow.com/questions/10885415
复制相似问题