我正在寻找比较两个表的方法,并确定一个表中缺少哪些行。这两个表位于不同的MySQL服务器上。
Table 1 ---------------- Apple Microsoft Google Table 2 ---------- Apple Google
我想要的是显示表1中缺少的项目列表。
答案 0 :(得分:0)
有几种方法可以获得您想要的结果,如果您想使用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 :(得分:0)
我认为您应该选择表1中的所有数据并将它们放在array-table1中并对表2执行相同操作,但对于table2,将它们放在array-table2中。然后比较两个数组并显示不在array-table1或array-table2中的数据。我希望它会有所帮助。