Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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 - Fatal编程技术网

SQL查询以查找属于同一表的表记录

SQL查询以查找属于同一表的表记录,sql,oracle,Sql,Oracle,我需要帮助来优化这个SQL查询 我有一个名为Student的表,其中包含以下列: id;部门名称;家长部门 价值观,例如: id Department_Name Parent_Department 1 IT_CS 2 IT_BP 3 IT_NP 4 IT1 1 5 IT2 1 6 IT3 3 7

我需要帮助来优化这个SQL查询

我有一个名为
Student
的表,其中包含以下列:

id;部门名称;家长部门

价值观,例如:

id  Department_Name Parent_Department
1      IT_CS    
2      IT_BP    
3      IT_NP    
4      IT1                1    
5      IT2                1    
6      IT3                3    
7      IT4      
8      IT9                2
我需要从表中获取所有id,其中parent\u department=IT\u CS; 为此,我写了两个查询

  • 从学生处选择id,该学生所在的系_Name='IT_CS'

  • 从上述查询中获取的父/母部门=id的学生中选择id


  • 有更好的方法吗?

    您可以这样使用join

    select id,Department_Name,Parent_Department 
    from student as a
    inner join student as b on a.parent_Department= b.id
    where b.Department_Name='IT_CS'
    

    自连接语句专门用于此目的

    SELECT *
    FROM STUDENT S
    JOIN STUDENT S1 ON S.PARENT_DEPARTMENT = S1.ID
    WHERE S1.DEPARTMENT_NAME = 'IT_CS'