【发布时间】:2017-09-14 16:01:26
【问题描述】:
我想得到一些专家的建议
我有 2 个表 Table1 和 Table2
表一
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 都匹配,那么我想在一行中获取记录..
我想用 Union 但结果不正确 - 下面是我的 union 结果
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
我是否必须使用完全外连接和 COALESCE 才能获得所需的结果
提前致谢
【问题讨论】:
-
是的,完全外部联接将是您的解决方案。
-
取决于 RDBMS。 mySQL 不支持完整的外部,但两个外部和联合都可以做到。但是不确定为什么需要合并。或者你可以继续你所拥有的,只需按 ID 最大化每个列和组(不太优雅的 imo)
-
哪个 SQL?如果有人给你解决错误的 SQL 是没有用的。
-
嗨 - 它是一个 HANA 数据库