我正在尋找一種方法來比較兩個表,並確定在一個表中缺少哪些行。這兩個表位於不同的MySQL服務器上。找到跨越不同MySQL服務器的兩個表中的數據
Table 1 ---------------- Apple Microsoft Google Table 2 ---------- Apple Google
我想要的是顯示錶1中缺少項目的列表。
我正在尋找一種方法來比較兩個表,並確定在一個表中缺少哪些行。這兩個表位於不同的MySQL服務器上。找到跨越不同MySQL服務器的兩個表中的數據
Table 1 ---------------- Apple Microsoft Google Table 2 ---------- Apple Google
我想要的是顯示錶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。然後比較兩個數組並顯示不在array-table1或array-table2中的數據。我希望這會有所幫助。