首页 > 解决方案 > SQL JOIN 问答与 NULL 缺少答案

问题描述

我有一个questions包含问题的表格和一个answers包含问题答案的表格。注意:可能不是每个问题都有答案。我还有一个列,answers其中包含 person_id(回答问题的人)。

我需要做一个 JOIN 查询来获取所有问题,以及问题的答案(如果适用),适用于特定的人。

select question.text, answers.answer, answer.id from question
left outer join answers
on question.id = answers.question_id
where answers.person_id = 175

如果没有特定问题的答案,我期望 null 作为答案,但是对于我当前的查询,如果没有答案,我不会得到问题或答案。

标签: mysqlsql

解决方案


您有left join,但where条件需要在on子句中:

select q.text, a.answer, a.id
from question q left outer join
     answers a
     on q.id = a.question_id and a.person_id = 175;

推荐阅读