sql - 标记是否存在 JOIN - SQL
问题描述
两个具有相同字段名称的表>>学生表(a)中的student.id和记录表(b)中的student.id
如果学生表中的 student.id 也在记录表中(加入 a.student.id = b.student.id)然后说“是”否则“否”作为“匹配”
解决方案
如果没有重复,那么您可以使用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;
推荐阅读
- amazon-web-services - 以编程方式将多个事件通知添加到 s3 存储桶
- amazon-web-services - 如何在 ASP.NET 中获取上传到 S3 的图像的缩略图?
- python - 我需要在@app.route() 中使用 methods=['GET', 'POST'] 吗?
- python - Django 视图流 - 创建->待处理->发布->编辑->待处理->发布
- ios - 导航栏的 .isTranslucent 颜色的 rgb 等效颜色是什么?
- go - gob 编码崩溃
- r - R vlookup 结合 if...and
- javascript - 为什么当我使用键盘键导航时滚动不起作用
- mysql - 从第二个表中获取 3 列和多条记录的总和
- javascript - JavaScript:解决算法问题