以下两个SQL查询的结果有什么区别?

时间:2018-01-04 22:07:22

标签: sql sql-server tsql

SELECT r.region_name as Region,
       COUNT(o.*) AS CanCount
FROM region AS r
INNER JOIN orders AS o ON o.region_id = r.region_id
WHERE r.region_id = 1
SELECT [Region] = r.region_name
     , [CanCount] = COUNT(o.*)
FROM region AS r
INNER JOIN orders AS o ON o.region_id = r.region_id
                      AND r.region_id = 1

1 个答案:

答案 0 :(得分:0)

结果将是相同的。

在第二个查询中,如果'region id'= 1,则表示您只希望结果加入两个表。这意味着只有'region ID'字段只有两个表匹配才会匹配输出1。

在第一个查询中,如果'region id'= 1,则请求结果仅返回值。第一个查询中的连接将返回所有'region ID'字段(如果它们匹配并过滤掉)输出中的值为1。