[英]sqlite: select subquery
我正在尝试在具有以下各列的文件夹表上准备选择子查询:
workspace_Id
parent_Id
我的要求是:
1)我需要特定workspace_id的所有文件夹,比如说workspace_id ='xyz'
例如 :
select * from folders where workspace_id='xyz'
现在我得到如下结果:
id workspace_id parent_id
1 xyz 51
2 xyz 44
3 xyz 73
4 xyz NULL
5 xyz 90
6 xyz NULL
2)现在,假设数据库中不存在51和90。 例如 :
select * from folders where workspace_id='xyz' and parent_id=51
要么
select * from folders where workspace_id='xyz' and parent_id=90
我不应该从上述2个查询中得到任何信息,因为db中不存在51和90。
2)棘手的部分:我的要求是仅获取那些具有parent_id的文件夹,该文件夹在数据库中不存在或为空
如果使用自我连接或子查询就足够了,我感到困惑,我应该真正学习子查询并加入:(
任何帮助,将不胜感激 !!!
使用not exists
几乎是您所要描述的直接翻译:
select f.*
from folders f
where workspace_id = 'xyz' and
(parent_id is null or
not exists (select 1 from folders f2 where f2.id = f.parent_id)
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.