2012-07-26 96 views
0

我有场名为submissionID(主键)提交的表格它查询2个表中查找结果

我有一个名为submissionID现场解答的表在它

我的目标是找到提交ID在哪里16和39都回答了

下面是我迄今为止,但似乎没有做我想要的...也许即时通讯与错误的路径加入?也许我需要一个内部选择?

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' 

HEREE IS答案方案

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,所以我想找到submissionID的,其中16和39均回答

+0

是否有一个原因,39被视为您的查询中的字符串? (答案='39'而不是答案= 39) – Sam 2012-07-26 17:57:35

+0

没有没有抱歉 – user875293 2012-07-26 17:57:58

+0

可能的重复http://stackoverflow.com/questions/11674636/join-two-tables-while-grouping-by-an-index-and -maching-for-multiple-foreign-id/11674668#11674668我*只是*回答。 – 2012-07-26 17:58:00

回答

0

事情是这样的:

SELECT 
    submissions.* 
    , answer.answer 
    , answer.submissionID 
FROM 
    submissions 
JOIN answer on submissions.submissionID = answer.submissionID 
WHERE 
    answer.answer IN (16,39) 
+0

我需要知道两个人都通过submitID回答,如果其中一个或另一个被回答的话 – user875293 2012-07-26 18:04:48

+0

答案表中,一列答案如何同时有16个和39个答案?你能提供表格的模式吗? – Sujay 2012-07-26 18:11:43

+0

似乎我的编辑在哪里我显示两个表格模式 – user875293 2012-07-26 18:17:02

0

尝试下面的查询,这可能帮助你..

SELECT s.submissionID FROM submissions s JOIN answer a USING(submissionID) WHERE a.answer IN (16,39) 
0

当你和答案= 18的条件,并回答= 39绝不是真实的,你可以去或以下列方式:

SELECT submissions.*, answer.answer, answer.submissionID FROM submissions JOIN answer ON submissions.submissionID = answer.submissionID WHERE answer.answer ='16' OR answer.answer ='39' 
+0

像其他答案这似乎是返回submissionID的地方找到16或39但我需要知道submitID答案都 – user875293 2012-07-26 18:09:46