2010-03-19 92 views
1
UPDATE employees 
    SET job_id = (SELECT job_id 
        FROM employees 
        WHERE employee_id = 205), 
     salary = (SELECT salary 
        FROM employees 
        WHERE employee_id = 205) 
WHERE employee_id = 114; 

这是我一直在使用的查询。在这里我使用2个子查询,但他们有相同的条件..寻找时间加倍..是否有一种方法来优化整个查询单个子查询?提前优化sql查询

+0

,** **请在突出问题的那些行并使用编辑器工具栏上的“代码”按钮(101 010)来很好地格式化这些!使它更容易阅读和理解! – 2010-03-19 09:47:38

+0

@joseph这样做(这种语法)在oracle中工作? http://stackoverflow.com/questions/2476206/optimize-the-sql-query/2476423#2476423 – garik 2010-03-19 10:29:47

回答

5

谢谢如果你更新了一组列,你可以删除一个子查询:如果您发布的代码,包括SQL或XML

UPDATE employees 
    SET (job_id, salary) 
     = (SELECT job_id, salary FROM employees WHERE employee_id = 205) 
WHERE employee_id = 114; 
+0

+1 - 我不知道你可以做SET(job_id,salary)= SELECT(Job_id,Salary)。 谢谢。 – 2010-03-19 10:24:28

+0

@Vincent,该语法是否也适用于SQL服务器? – 2010-03-19 10:26:50

+0

不,它不适用于sql server(2005) – garik 2010-03-19 10:31:23