【发布时间】:2019-10-23 07:50:38
【问题描述】:
我正在尝试加入 2 个表。 Table_A 有 ~145k 行,而 Table_B 有 ~205k 行。
它们有两列共同(即 ISIN 和日期)。但是,当我执行此查询时:
SELECT A.*,
B.column_name
FROM Table_A
JOIN
Table_B ON A.date = B.date
WHERE A.isin = B.isin
我得到一个超过 147k 行的表。这怎么可能?它不应该返回一个最多包含 ~145k 行的表吗?
【问题讨论】:
-
不,如果在同一日期存在重复记录并且在您所在的位置,每次加入您将获得 2 行或更多行
-
不知道你的表结构,但使用日期加入不是很好的做法,如果可能的话,在你的表中使用整数值加入。关于为什么行数比你预期的多,你的表中可能有重复的记录也需要过滤掉。
-
这是一个常见问题解答。在考虑发布之前,请始终使用谷歌搜索您的错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,有或没有您的特定字符串/名称和站点:stackoverflow.com 和标签,并阅读许多答案。如果您发布问题,请使用一个短语作为标题。请参阅How to Ask 和投票箭头鼠标悬停文本。 PS请在代码问题中给出minimal reproducible example--剪切&粘贴&可运行代码;具有期望和实际输出(包括逐字错误消息)的示例输入(作为初始化代码);标签和版本;明确的规范和解释。
标签: sql sql-server join