我使用以下查询将两个表连接在一起:
SELECT SDA.smachIPAddress,
DPP.ScanName,
DPP.pspplMSSeverity,
DPP.PatchMissing,
DPP.ScanDate
FROM patchtest_withsev DPP
INNER JOIN patchtest_withip SDA
ON DPP.ScanName =SDA.ScanName
并接收2351行数据
当我查询 patchtest_withsev 表中的所有记录时,它仅返回 99,而 patchtest_withip 表仅返回 99。
有人能明白为什么这个查询会产生如此大的不匹配吗?
最佳答案
似乎两个表都有几行具有相同的 ScanName
值。
例如:
table1:
f1 | f2
1 | a
1 | b
2 | c
2 | c
table2:
f1 | f2
1 | a
1 | b
2 | c
table1 INNER JOIN table2 ON table1.f1 = table2.f1 给出:
table1.f1 | table1.f2 | table2.f1 | table2.f2
1 | a | 1 | a
1 | a | 1 | b
1 | b | 1 | a
1 | b | 1 | b
2 | c | 2 | c
2 | c | 2 | c
为了避免结果中完全重复的行,请尝试使用DISTINCT
。
关于mysql - 内连接返回大量重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10939090/