首页 > 解决方案 > 标记是否存在 JOIN - SQL

问题描述

两个具有相同字段名称的表>>学生表(a)中的student.id和记录表(b)中的student.id

如果学生表中的 student.id 也在记录表中(加入 a.student.id = b.student.id)然后说“是”否则“否”作为“匹配”

标签: sqlhivehiveqlif-this-then-that

解决方案


如果没有重复,那么您可以使用left join

select s.*, (case when r.student_id is null then 'No' else 'Yes' end)
from students s left join
     records r
     on r.student_id = s.id;

如果可能有重复,则在加入之前删除重复项:

select s.*, (case when r.student_id is null then 'No' else 'Yes' end)
from students s left join
     (select distinct r.student_id
      from records r
     ) r
     on r.student_id = s.id;

推荐阅读