繁体   English   中英

sqlite:选择子查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM