gpt4 book ai didi

mysql - sql工作台在运行连接后添加行

转载 作者:行者123 更新时间:2023-11-29 17:31:33 27 4
gpt4 key购买 nike

大家好,我有一个简单的问题,我正在运行 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

最佳答案

JOIN 查询产生的结果多于其源记录并不一定表明出现了彻底错误;但可能表明出现了问题(需要以这种方式运行的查询存在,但相对较少)。

问题的根源可能是因为您连接的值在两个表中都不唯一。举个简单的例子:如果表 X 有两条条记录,字段 A = 5,表 Y 有条记录,字段 A = 5,并且它们在字段 A 上进行 JOINed ;这些记录将产生六个结果。

这可能意味着您的源数据存在问题,或者您可能只需要以不同的方式查询它。我注意到您只从 media 中选择字段,而没有从 media_1 中选择字段;此查询可能会产生您期望的结果:

SELECT media.Timestamp, media.Campaign, media.Media, media.sv3, media.sv4 
FROM media
WHERE (sv3, sv4) IN (SELECT sv3, sv4 FROM media_1)

关于mysql - sql工作台在运行连接后添加行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50590235/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com