我遇到了一个问题,经过多次失败的尝试后我似乎无法弄清楚。
我有三个表需要加入一些报告,而在第二个表中可能不存在记录。如果记录不存在,我需要为来自第三个表的数据报告一个空值。
在最基本的形式中,这是表格结构(用于调查)
表 A(调查) ---------------------- 调查编号 | 调查 ID 016243023708 1152010 表 B(响应) ---------------------------------- 调查 ID | 问题 ID | 响应 ID 1152010 1279235 486 表 C(响应值) -------------------- 响应 ID | 价值 486 是的
要解释为什么表 B 中可能不存在记录,仅仅是因为这些值是在调查完成时插入的。如果用户没有完成就离开调查(他们可以稍后回来),表 B 中的记录将不存在。为此,表 C 中的值应报告为空。
如果它更容易,我需要专门为 questionid 1279235 进行报告。
这是我到目前为止提出的查询(它向我展示了除了问题 1279235 表 b 中缺少记录的调查之外的所有内容)。
SELECT A.SurveyNumber, A.SurveyId, B.QuestionID, C.Value
FROM tblA A
LEFT JOIN tblB B
ON A.SurveyId = B.SurveyId
LEFT JOIN tblC C
ON B.ResponseId = C.ResponseId
WHERE B.QuestionId = 1279235
如果需要,我可以提供更多说明。
提前致谢