我有四个表链接加入回到目标表
Survey Question Responses Participants
============= ============== ============== =============
id_S id_Q id_R id_P
id_S id_Q id_S
id_P
id_S
Answer
我试图找出如何检索谁给了“d”作为回答问题3#参与者所有响应。
这是我的第一个怪人,但毫不奇怪它不起作用。
SELECT *
FROM responses r
LEFT JOIN participants p
ON r.id_P = p.id_P
LEFT JOIN responses r2
ON p.id_R = r.id_P
WHERE r.id_S = 1 AND r2.Answer = "D" AND r2.id_Q = 1
通过不起作用它会返回太多的记录。 SQL Select * FROM responses WHERE id_S =1
将返回1,891条记录,但上述热点混乱将返回15,128条记录。
很明显,我甚至没有正确的概念来解决这个问题,它不是一个简单的语法调整。
把它分成两个查询第(1)检索是谁给了“d”作为答案的问题3参与者,和(2)检索参与者可以在任何响应(1)。从那里出发 – Oerd
你为什么不参加这个问题? –
您在询问“参与者的所有答复”,而不是“参与者在调查1中的所有答复”。我不明白为什么前面的数字不能大于调查1中的所有响应。 – Quassnoi