0

我有一个提交表,其中包含名为 submitID(主键)的字段

我有一个答案表,其中有一个名为 submitID 的字段

我的目标是找到同时回答了 16 和 39 的提交 ID

以下是我到目前为止所拥有的,但似乎并没有做我想做的事......也许我在 JOIN 上走错了路?也许我需要一个内部选择?

SELECT submissions.*, answer.answer, answer.submissionID FROM submissions JOIN answer USING(submissionID) WHERE (answer = 16 AND answer = '39')

这是表格提交的方案

CREATE TABLE `submissions` (
  `submissionID` int(11) NOT NULL AUTO_INCREMENT,
  `sID` int(11) NOT NULL,
  `sendInfoTo` text NOT NULL,
  `userIP` text NOT NULL,
  `sendNotificationTo` text NOT NULL,
  PRIMARY KEY (`submissionID`)
) ENGINE=MyISAM AUTO_INCREMENT=1343314525 DEFAULT CHARSET=latin1$$

9'

这是答案方案

CREATE TABLE `answer` (
  `aID` int(11) NOT NULL AUTO_INCREMENT,
  `qtID` int(11) NOT NULL,
  `answer` text NOT NULL,
  `submissionID` int(11) NOT NULL,
  PRIMARY KEY (`aID`)
) ENGINE=MyISAM AUTO_INCREMENT=56247 DEFAULT CHARSET=latin1$$

提交表保存唯一的提交ID

答案表包含提交的所有答案

例如,我有很多问题。问题 1 的答案可能是 16,问题 2 的答案可能是 39,所以我想找到同时回答了 16 和 39 的提交 ID

4

3 回答 3

0

由于您对答案 =18 和答案 =39 的 AND 条件永远不会为真,因此您可以通过以下方式进行 OR:

  SELECT submissions.*, answer.answer, answer.submissionID FROM submissions JOIN answer ON  submissions.submissionID = answer.submissionID WHERE answer.answer ='16' OR answer.answer ='39'
于 2012-07-26T18:06:53.737 回答
0

像这样的东西:

SELECT 
    submissions.*
    , answer.answer
    , answer.submissionID 
FROM 
    submissions 
JOIN answer on submissions.submissionID = answer.submissionID
WHERE
    answer.answer IN (16,39)
于 2012-07-26T17:58:39.860 回答
0

尝试以下查询,这可能对您有所帮助..

SELECT s.submissionID  FROM submissions s JOIN answer a USING(submissionID) WHERE a.answer IN (16,39)
于 2012-07-26T17:58:55.553 回答