【发布时间】:2015-12-13 06:35:30
【问题描述】:
数据库是 Teradata
我有两个要加入的表。以下是表结构。当我加入这些表时,我希望得到两行作为输出,但得到 4 行。这种行为的原因是什么。基于三个键的连接应该唯一地标识一行,但仍然得到 4 行作为输出。任何帮助表示赞赏。
TableA
Weekkey|segment|type|users
201501|1|A|100
201501|1|B|100
TableB
Weekkey|segment|type|revenue
201501|1|A|200
201501|1|B|200
当我使用以下查询加入这两个表时,我得到以下结果
select a.* ,b.user
from tablea a left join tableb b on a.weekkey=b.weekkey
and a.segment=b.segment
and a.type=b.type
Weekkey|segment|type|revenue|users
201501|1|A|200|100
201501|1|B|200|100
201501|1|A|200|100
201501|1|B|200|100
【问题讨论】:
-
您使用的是哪个数据库?
-
使用 sql server 和你发布的数据和查询是不可能的。
-
我假设(通过查看表名)这是一个示例查询。你确定你没有重用别名?比如:a.type = a.type
-
另外,根据您的示例数据,您的
users列在 TableA 中,而您的查询则不然。 -
数据库是 terdata。我没有使用任何重复的别名。