了解嵌套的SQL语句

时间:2017-03-17 14:13:31

标签: sql select nested

有没有简单的方法来重新创建此声明?或者我可以在我的数据库中查找示例?因为目前我不明白它究竟是做什么的。我想我理解了第一个in,但我不知道为什么有两个in条款的PROJECTS为什么第二个例子与第一个例子不同。提前谢谢。

select usernumber as usrnr from DOCUMENTS
where CompanyIndex in (
    select CompanyIndex 
    from DOCUMENTS 
    where DocumentType='3' 
      and ProjectsIndex in (select Index 
                            from PROJECTS where 
                            Projectnumber = 209806)
)
and ProjectsIndex in (
    select Index 
    from PROJECTS 
    where Projectnumber = 209806  
)
and DocumentType = '2'

我不明白为什么它与此不一样

select ad1 as AD1Nr from DOCUMENTS
where CompanyIndex in
(
    select CompanyIndex 
    from DOCUMENTS 
    where DocumentType='3' 
      and ProjectsIndex in (select Index 
                           from PROJECTS 
                           where Projectnumber = 209806)
       and DocumentType = '2')

1 个答案:

答案 0 :(得分:2)

我已重新格式化代码以显示结构。

现在明显不同了:条件DocumentType = '2'位于第二个样本的内部选择内,但位于第一个样本的外部。

(这就是为什么有点强迫性的格式化并不是一种负面特征。)