如何解决有关是否在其他表中存在值的SQL Case语句
我对这个尝试写的查询感到有些困惑,因为这不是一个简单的左联接,它处于空状态。我有一个帐户表,一个account_category表(类别中的帐户)和一个category_request表。 category_requests显示哪些帐户请求了哪些类别,但是account_category显示了给定类别中的哪些帐户。因此,我需要编写一个查询,以显示所请求类别的列表以及通过检查account_category表是否将其实际注册到该类别中。我该怎么写?
-
Account
表-ID,名称 -
Account_category
表-id,account_id,category_id -
Category_request
表-id,account_id,category_id
我尝试了类似的方法,但这不是我想要的。我可能还需要添加一个案例声明。
select cr.product,cr.id,ac.id
from category_request cr
join accounts a on a.account_id = cr.account_id
left join account_category ac on ac.account_id = a.account_id
and cr.id = ac.id
order by cr.account_id;
输出列
account_id,category_name,in_category
解决方法
我认为除了InCategory(查询中缺少它)之外,您都已获得它。只需将第二行添加到您的SELECT
select cr.product,cr.id,ac.id,CASE WHEN ac.id IS NOT NULL THEN 1 ELSE 0 END InCategory
....
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。