поиск данных, которых нет в обеих таблицах на разных серверах MySQL

#php #mysql

#php #mysql

Вопрос:

Я ищу способ сравнить две таблицы и определить, какие строки отсутствуют в одной таблице. Эти две таблицы находятся на разных серверах MySQL.

Таблица 1
----------------
Apple
Майкрософт
Google

Таблица 2 
----------
Apple
Google

Я хочу показать список элементов из таблицы 1, которые отсутствуют.

Ответ №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);
  

Ответ №2:

я думаю, вам следует выбрать все данные из таблицы 1 и поместить их в массив-table1 и сделать то же самое с таблицей 2, но для table2 поместите их в array-table2. после этого сравните два массива и отобразите данные, которых нет в array-table1 или в array-table2. Я надеюсь, что это поможет.