我正在寻找一种方法来比较两个表,并确定其中一个表中缺少哪些行。这两个表在不同的MySQL服务器上。
<>之前表1----------------苹果微软谷歌表2----------苹果谷歌之前我想要显示的是表1中缺少的项的列表。
有几种方法可以得到你想要的结果,如果你想使用PHP,它是最简单的,像这样:
$table1 = mysql_query("SELECT fieldname.....");
$table2 = mysql_query("SELECT fieldname.....");
$results_table2 = mysql_fetch_array($table2);
while($row = mysql_fetch_assoc($table2))
{
if(!in_array($row['fieldname'], $results_table2))
{
echo $row['fieldname'] ." not in both tables";
}
}
甚至可以用array_intersect
代替while循环。
$table1 = mysql_query("SELECT fieldname.....");
$table2 = mysql_query("SELECT fieldname.....");
$results_table1 = mysql_fetch_array($table1, MYSQL_ASSOC);
$results_table2 = mysql_fetch_array($table2, MYSQL_ASSOC);
$result1 = array_intersect($results_table1, $results_table2);
print_r($result1);
$result2 = array_diff($results_table1, $results_table2);
print_r($result2);
我认为你应该从表1中选择所有的数据,并将它们放在数组表1中,并对表2做同样的处理,但对于表2,将它们放在数组表2中。然后比较两个数组并显示不在arraytable1或arraytable2中的数据。