全外加/ COALESCE

时间:2017-09-14 16:01:26

标签: sql join

我想得到一些专家建议

我有2个表Table1和Table2

表1

ID  DATE         SALEPRICE

1   05/12/17     $10
6   04/12/17     $11
3   03/12/17     $12
4   02/12/17     $13

表2

ID  DATE         REGULARPRICE

1   07/12/17     $20
2   08/12/17     $21
3   09/12/17     $22
4   10/12/17     $23

结果表

ID  SALEDATE         SALEPRICE REGULARPRICE   REGULARPRICEDATE

1   05/12/17          $10       $20           07/12/17
6   04/12/17          $11         
3   03/12/17          $12       $22           09/12/17
4   02/12/17          $13       $23           10/12/17
2                               $21           08/12/17

我需要来自两个表的条​​目..如果我从两个表中都有一个id匹配,那么我想把记录放在一行..

我想使用联盟,但结果不正确 - 以下是我的工会结果

1   05/12/17          $10       null          null
1   null              null      $20           07/12/17
6   04/12/17          $11       null          null  
3   null              null      $22           09/12/17
3   03/12/17          $12       null          null  
4   02/12/17          $13       null              null
4   null              null      $23           10/12/17

我是否必须使用Full Outer Join和COALESCE来获得所需的结果

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以使用两者。完全外部联接以返回所有记录而不管匹配,然后COALESCE将相同的列合并为一个。仅当两列中的数据完全相同时,才使用COALESCE。多数民众赞成如果你想合并列。如果没有,那么只需使用完全外连接。