大家好,我有一个简短的问题,我正在运行mysql工作台,在连接两个表之后,我得到10000行的结果。考虑到第一个数据集有6000行,第二个数据集有450行,这显然是错误的。我显然做错了什么,但我不知道这是什么,为什么会发生我选择了一些列从第一个数据集,并与第二个sv3和sv4列匹配
你能告诉我我做错了什么吗?
代码
select media.Timestamp, media.Campaign, media.Media, media.sv3, media.sv4
from media
inner join media_1
on media.sv3=media_1.sv3 and on media.sv4=media_1.sv4
1条答案
按热度按时间lfapxunr1#
连接查询产生的结果比其源记录多,这不一定是一个明显错误的标志;但可能是某个错误的指示器(需要以这种方式进行的查询是存在的,但相对较少)。
问题的根源很可能是因为您加入的值在两个表中都不是唯一的。举个简单的例子:如果表x有两条字段a=5的记录,表y有三条字段a=5的记录,它们在字段a上连接起来;这些记录将产生六个结果。
这可能意味着源数据有问题,或者您可能只需要以不同的方式查询它。我注意到您只从
media
没有一个来自media_1
; 此查询可能会产生您期望的结果: