Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择“使用”查询;是空的-子句和子选择/左联接不返回任何结果_Sql_Oracle_Subquery_Left Join - Fatal编程技术网

Sql 选择“使用”查询;是空的-子句和子选择/左联接不返回任何结果

Sql 选择“使用”查询;是空的-子句和子选择/左联接不返回任何结果,sql,oracle,subquery,left-join,Sql,Oracle,Subquery,Left Join,我试图在Oracle 12c的基础上,从明细表中选择条目,该明细表应满足两个where约束: 外键处于子选择状态 列为空 下面带有子select(in子句)的语句根本不返回任何结果 select * from DETAIL where (PARENT_ID) in ( select ID from MASTER where COL1 = 1) and COL2 is null; 左连接也不返回任何结果: select d.* from MASTER m left join

我试图在Oracle 12c的基础上,从明细表中选择条目,该明细表应满足两个where约束:

  • 外键处于子选择状态
  • 列为空
  • 下面带有子select(in子句)的语句根本不返回任何结果

    select *
      from DETAIL
      where (PARENT_ID) in (
        select ID from MASTER where COL1 = 1)
      and COL2 is null;
    
    左连接也不返回任何结果:

    select d.*
    from MASTER m
    left join DETAIL d
      on d.PARENT_ID = m.ID
    where m.COL1 = 1
      and d.COL2 is null;
    
    “我的表格”设置包含以下表格:

    create table MASTER (
      ID NUMBER(19) NOT NULL,
      COL1 NUMBER(19),
      primary key (ID)
    );
    insert into MASTER ("ID", "COL1") VALUES (1, 1);
    insert into MASTER ("ID", "COL1") VALUES (2, 2);
    insert into MASTER ("ID", "COL1") VALUES (3, 1);
    
    create table DETAIL (
      ID NUMBER(19) NOT NULL,
      PARENT_ID NUMBER(19),
      COL2 NUMBER(2,0),
      primary key (ID),
      foreign key (PARENT_ID) references MASTER(ID)
    );
    insert into DETAIL ("ID", "PARENT_ID", "COL2") VALUES (1, 1, 1);
    insert into DETAIL ("ID", "PARENT_ID", "COL2") VALUES (2, 2, 1);
    insert into DETAIL ("ID", "PARENT_ID", "COL2") VALUES (3, 3, 1);
    insert into DETAIL ("ID", "PARENT_ID", "COL2") VALUES (4, 3, 2);
    
    根据上面的代码,我希望得到超过0个条目作为结果


    有什么建议吗?谢谢

    在明细表中,COL2始终有一个值,因此从不为空。因此,
    COL2为NULL
    条件永远不会满足,您的查询不会返回任何结果。

    在您的示例中,所有具有parent_id mathc的行以及匹配的行都没有具有NULL的COL2。。这意味着你的左连接返回了曾经完整的结果“我希望”为什么?当你告诉我们为什么时,这有助于我们向你解释你在哪里有错误的想法。