MySQL在具有相似列的两个表之间找到重复项

时间:2014-01-13 15:30:38

标签: mysql sql

使用此question's answer。我试图通过每个表中的列名matrix_unique_idMatrix_Unique_ID在两个表之间找到重复的记录,然后显示完整的地址。完整地址列的格式在每个表中彼此不同,因此我不能将其用作比较。我收到了“未知列fort_property_res.matrix_unique_id”错误,但一切看起来还不错?

所以有两个问题:

  1. 此查询是否会正确找到重复项?

  2. 为什么未知列错误?

  3. SQL查询:

    SELECT matrix_unique_id, full_address 
    FROM fort_property_res
    INNER JOIN (
        SELECT Matrix_Unique_ID, FullAddress 
        FROM sunshinemls_property_res
        GROUP BY FullAddress 
        HAVING count(fort_property_res.matrix_unique_id) > 1
    ) dup ON fort_property_res.matrix_unique = sunshinemls_property_res.Matrix_Unique_ID
    

1 个答案:

答案 0 :(得分:2)

您尝试复制的解决方案完全不同。你有两个表和(看起来像)方便的matrix_unique_id来加入,所以这更容易:

SELECT fort.matrix_unique_id fort.full_address AS fortAddress, sun.FullAddress AS sunAddress
FROM fort_property_res fort, sunshinemls_property_res sun
WHERE fort.matrix_unique_id = sun.Matrix_Unique_ID