mysql - 内连接返回大量重复项

标签 mysql inner-join

我使用以下查询将两个表连接在一起:

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/

相关文章:

MySQL:列大小限制

PHP PDOException -- 无效参数编号 : Columns/Parameters are 1-based

mysql - SELECT with INNER JOIN 计算增量和过滤结果

r - 如何返回与 df1 和 df2 中的列 'id' 匹配但不与列 'text' 匹配的行值,并返回 NA 到列 'text' 中的不匹配?

mysql - SQL 连接大数据

MySQL:WHERE 子句中的 LIKE 通配符

php - 如何添加选择不同?

mysql - 多进程轮询mysql并更新数据

mysql - PHP 在 MySQL 表中进行二分查找并删除行

mysql - mysql中三个表的内连接花费太长时间