自然全外连接

时间:2014-04-10 17:53:08

标签: sql full-outer-join

我试图理解自然的全外连接是如何工作的,所以让我们考虑表R和S.

表R:

  a  |   b  |   c  |  e
  1  | null |   1  |  2
  1  |   3  | null |  2
  2  |   4  |   2  |  2
null |   5  |   2  |  2
null |   4  |   1  |  2
null |   2  | null |  2
  0  |   2  |   4  | null

表S:

  c  |  d
  1  |  2
  2  |  2 
  3  |  2 
null |  2 
  4  | null

我从做的结果

select *
from R natural full outer join S

当时:

  a  |   b  |   c  |   d  |   e
  1  | null |   1  |   2  |   2
  1  |   3  | null |   2  |   2
  2  |   4  |   2  |   2  |   2
null |   5  |   2  |   2  |   2
null |   4  |   1  |   2  |   2
null |   2  | null |   2  |   2
  0  |   2  |   4  | null | null
null | null |   3  |   2  | null

但是这不正确,因为以下查询中所有值的总和必须为20:

SELECT b, COUNT(*), AVG(a+d) 
FROM R NATURAL FULL OUTER JOIN S 
WHERE NOT d<>e 
GROUP BY b 

请注意,这一切都是手工完成的。

0 个答案:

没有答案