我进行了查询,应针对特定要求输出stud_fname,stud_sname,result_studpoints,result_position和studevent_result,其中stud_gender ='M',stud_yrGroup ='9'和event_id ='1'。
这是查询:
SELECT stud_fname, stud_sname, result_studpoints, result_position, studevent_result FROM students
INNER JOIN result
WHERE stud_gender = 'M'
AND stud_yrgroup = '9'
AND result.stud_id IN (SELECT students.stud_id FROM result WHERE event_id = '1');
但它不会显示正确的输出。
不应输出Sam Cro行,因为他不执行event_id ='1'。如何解决我的查询,以便它根据所述要求输出正确的数据。
提前致谢。
在子查询中,选择“ students.stud_id”,而不是从事件ID 1的表中选择结果。加入时,最好使用on子句,而不要在where子句中添加check。通常,我将修改查询,如下所示。
SELECT stud_fname,
stud_sname,
result_studpoints,
result_position,
studevent_result
FROM
students s
INNER JOIN
result r on
s.stud_is = r.stud_id
WHERE
stud_gender = 'M'
AND stud_yrgroup = '9'
AND r.event_id = '1';
您也可以将子查询中的结果表更改为students表,以获取正确的映射,但我建议您不要这样做。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句