ORACLE SQL Query IN CLAUSE 或其他解决方案

问题描述

我有一个现有的大查询,它有一个深藏在战壕中的子查询,可以根据 ID 获取员工。

SELECT BIG QUERY.....................................
 ( Select mananger_id from Employee_table where employee_id=123)
)

现在我有一个更新的要求来处理多个员工 ID。一个小组的最大员工人数为 200

 SELECT BIG QUERY.....................................
     ( Select mananger_id from Employee_table where employee_id IN (?,?,?... 200X?))
    )
  1. 这是最好的方法吗?如果不是我该怎么办。什么是最好的选择
  2. 对 IN 子句是否有任何性能影响

解决方法

您究竟是如何使用这个子查询的?

例如,如果您的代码实际上是这样的:

SELECT BIG QUERY.....................................
FROM table
WHERE table.manager_id = 
 ( Select mananger_id from Employee_table where employee_id=123)
)

那么最好这样做:

SELECT BIG QUERY.....................................
FROM table
JOIN Employee_table E on e.employee_id = 123 AND table.manager_id = e.manager_ID

由于您没有详细说明如何获得 200 个条目,因此我无法添加更多详细信息,但您可以了解如何根据您的使用情况扩展连接

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...