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 个条目,因此我无法添加更多详细信息,但您可以了解如何根据您的使用情况扩展连接