近一天我一直坚持这一点。我对数据库知之甚少,因为我是新手。
我有一张这样的表
question_strand | question_number | question_difficulty
part 1 | 1 | easy
.. | ... | ...
part 1 | 20 | medium
.. | ... | ...
part 10 | 20 | difficult
复合键: question_strand 和 question_number
问题表由10个部分组成,每个部分有20个项目,每个数字都有困难。此表还包含question_items和其他列,我没有在示例中包含这些列,因为它与问题无关
question_strand | question_number | question_answer | student_name
part 1 | 1 | true | gerald
... | ... | ... | ...
part 1 | 20 | wrong | gerald
复合键 question_strand , student_name 和 question_number
问题答案表也包含question_strand和question_number,但有question_answer和student_name
我只想选择特定学生的答案。
这是我想要的结果
question_strand | question_number | question_answer | student_name
part 1 | 1 | true | gerald
... | ... | ... | ...
part 1 | 20 | wrong | gerald
part 2 | 1 | null | null
... | ... | ... | ...
part 10 | 20 | null | null
我想获得所有问题,但如果它没有任何值与第二个表相对应,也包含空值
我正在使用mySQL。提前致谢
答案 0 :(得分:0)
您只需使用左连接
即可SELECT
q.question_strand,
q.question_number,
a.question_answer,
q.student_name
FROM
questions_table q LEFT JOIN answer_table a
ON q.question_strand = a.question_strand AND
q.question_number = a.question_number
如果您想要特定学生的记录
SELECT
q.question_strand,
q.question_number,
a.question_answer,
q.student_name
FROM
questions_table q LEFT JOIN answer_table a
ON q.question_strand = a.question_strand AND
q.question_number = a.question_number AND
q.student_name = 'gerald'
答案 1 :(得分:0)
您尚未指定实际查询,因此我很难为您提供帮助。
SELECT question_strand, question_number, question_answer, student_name
FROM question_answers
WHERE student_name = "gerald" OR student_name IS NULL
此查询将从question_answers
中提取学生称为Gerald的所有数据,或者他们没有姓名。
这应该从我理解的内容中提取您想要的数据。