比较2表并保持唯一匹配的数据(基于列)并删除不匹配的数据

时间:2016-12-16 05:16:57

标签: php mysqli

我不确定我是否能描述这种情况。

我正在开展一个项目,我需要在两个表之间进行比较,然后删除所有不匹配的记录。因此主表应该只有匹配的数据。

我的问题是,在运行循环时,在第一次迭代时,它会删除除第一次引用之外的所有不匹配数据。

这是我的代码..

$refTableData2 ="SELECT DISTINCT $oColoum FROM $oTable";
                                                $refTableData2 = mysqli_query($con, $refTableData2);
                                                if (mysqli_num_rows($refTableData2) > 0) {
                                                    while($rerow2 = mysqli_fetch_assoc($refTableData2)) {

                                                        $rTableData2= $rerow2[''.$oColoum.''];

                                                        $delete=mysqli_query($con,"DELETE FROM $mTable WHERE $mColoum != '$rTableData2'");

                                                    }
                                                }

任何帮助都将非常感激。

谢谢

1 个答案:

答案 0 :(得分:0)

只需使用SQL:

DELETE FROM master_table
WHERE match_column NOT IN (
SELECT DISTINCT match_column
FROM other_table);