我已经发现您可以同时使用很多时间做相同的事情。在某些情况下,有什么方法可以使其表现更好吗?就可读性而言,一个被认为比另一个更好吗? SQL Server是否仍将它们编译为同一事物?
示例:
SELECT c.customer_name
, o.order_id
FROM customers AS c
JOIN orders AS o ON c.customer_id = o.customer_id AND o.order_total > 50.00
VS
SELECT c.customer_name
, o.order_id
FROM customers AS c
JOIN orders AS o ON c.customer_id = o.customer_id
WHERE o.order_total > 50.00
如果我对这件事有严重的误解,或者我的语法不正确,请原谅。
我对SQL还是很陌生,在我从事新工作的应用程序中,很多逻辑都是在动态SQL中进行的(我两周前才刚开始我的第一项开发工作)]] >>
这是我的第一个堆栈溢出问题
我必须从工作中发现的假查询中改编一个假查询,因此,我作为示例给出的语法甚至可能都不正确。每当我认为我了解事情如何运作时,我很快就会意识到,不是那么简单。
我已经发现您可以同时使用很多时间做相同的事情。在某些情况下,有什么方法可以使其表现更好吗?就...
取决于JOIN类型。对于INNER JOINS没有区别,优化器将对其进行相同处理。对于外部联接,有一个关键的区别。对于以下查询:
SELECT * FROM employee AS e
LEFT OUTER JOIN department AS d ON e.depId=d.depId AND d.location = 'USA'