如果存在匹配的记录,查询如何返回“是”,如果没有,则返回“否”?SQL / MS Access

3
我有以下表格:
学生数据
- 学生ID(主键)
先前教育
- 学生ID(外键) - 先前教育代码
目前,我有一个查询,显示从“学生数据”中每个学生的各种数据,每个学生一条记录。我想在此查询中添加另一个列,如果在“先前教育”中有至少一个匹配记录,则显示“Y”,如果没有匹配记录,则显示“N”。基本上我想要一个答案来回答这个问题:“这个学生有先前的教育经历吗?”
无论学生在“先前教育”中有多少记录,我都希望查询中只有每个学生的一条记录。
我正在使用MS Access工作,并且对SQL的经验很少,因此最好不需要太多的SQL知识来解决问题,但这不是必需的。
1个回答

4
您可以使用LEFT JOINIIF
SELECT student.studentid,iif (isnull(prior.priorid),'Yes','No')
FROM student LEFT JOIN [prior] ON student.studentid = prior.studentid;

编辑:

SELECT student.studentid, iif(count(prior.priorid)<>0,'Yes','No')
FROM student LEFT JOIN [prior] ON student.studentid=prior.studentid
group by student.studentid

这正好做到了我所要求的,但是它会根据学生在“先前教育”中拥有的记录数量而给出多个记录。我在最初的问题中应该更具体(我已经编辑过来修复这个问题)。如果您可以修改代码以实现这一点,那就太好了。 - LittleJohn
@LittleJohn - 添加group by并比较Count()聚合函数的值。请查看编辑后的帖子。 - KV Prajapati

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接