SQL加入returns这么多行

SQL join returns so many rows

我有两个 table:警报(22078 行)和人口统计(1857)。警报包含 2 列:AlertID(Unique) 和 EndUserID。每个 EndUserID 可以有多个 AlertID。人口统计 table 包含 2 列:EndUserID(唯一)和 PIN(唯一且为空)。

AlertID EndUserID
101 119
134 119
293 139
89 200
375 119
500 257
EndUserID PIN
119 24001
500 23045
200 25901
1000 Null
439 20018
78 25457

我想从人口统计中获取警报 table 中每个 AlertID 的 PIN。它应该是 workbench 中的简单连接查询,例如:

Select a.AlertId, a.EndUserID, b.PIN 
from alerts a join Demographics b  
on a.EndUserID = a.EndUserID;

我的输出应该是这样的:

AlertID EndUserID PIN
101 119 24001
134 119 24001
293 139 Null
89 200 25901
375 119 24001
500 257 21600

但是,我得到了很多行,例如 EndUserID 119 返回了 300 多条具有不同 PIN 的记录,尽管它在警报中只有 59 个实例,在人口统计中只有 1 个。这很奇怪而且我不确定我犯了什么错误。

您正在将警报 table 中的所有行与人口统计中的所有行连接起来,您连接列的别名有误:

Select a.AlertId, a.EndUserID, b.PIN 
from alerts a join Demographics b  
on a.EndUserID = b.EndUserID; -- < here