2012-07-26 165 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