我们有很多条件的庞大查询。
但是,我们认为某些条件是不相关的
您能否让我知道这里的where
子句是否可以删除
请在下面摘录带有where
子句的大型查询(子查询)
SELECT f1, ... f10
FROM A
JOIN
SELECT f1, f2 ... f10
FROM B where PROC_DT IN (SELECT PROC_DATE FROM C)
ON A.ID = B.ID
WHERE ISNOTNULL(PROC_DT)
我认为查询已经可以从表B中获取数据时验证PROC_DATE了,因此我们可以在这里删除where
子句。
有人可以确认我的发现吗
答案 0 :(得分:1)
是的,您是正确的,因为in不能为null。我会改用内部联接,在某些情况下会更快。
SELECT f1, ... f10
FROM A
JOIN B ON A.ID = B.ID
join (SELECT DISTINCT PROC_DATE FROM C) AS X ON B.PROC_DT = X.PROC_DATE