/ / Identifizieren, welche Zeilen in zwei MySQL-Tabellen unterschiedlich sind - MySQL, Linux

Wie erkennt man, welche Zeilen in zwei MySQL-Tabellen unterschiedlich sind - mysql, linux

Ich habe zwei ähnliche MySQL-Tabellen in SQL, ich möchte identifizieren, welche Zeilen unterschiedlich sind. Kann mir jemand mit Ideen helfen? .. Danke

Antworten:

0 für die Antwort № 1

Ich hoffe, Sie haben Primärschlüssel für jeden Datensatz oder eindeutigen Schlüssel für jeden Datensatz und andere Felder können unterschiedlich sein. So können Sie überprüfen, welche Datensätze nicht identisch sind.

select A.<Primary_key/Unique_key>, A.<rest of the columns>, B.<rest_of the columns> from Table A , Table B where A.<primary_key/Unique_key)>=B.<Primary_key/unique_key> and concat(A.field2,"|",A.field3,"|",A.field4) <> concat(B.field2,"|",B.field3,"|",B.field4);

Es ist einfach, alle Felder gleichzeitig zu verknüpfen und zu vergleichen, oder Sie können jedes Feld einzeln wie folgt vergleichen:

select A.<Primary_key/Unique_key>, A.Field2,A.Field3,A.Field4, B.Field2,B.Field3,B.Field4 from Table A , Table B where A.<primary_key/Unique_key)>=B.<Primary_key/unique_key> and ( A.Field2 <> B.Field2 OR A.Field3 <> B.Field3 OR A.Field4 <> B.Field4 );

Ich hoffe, das wird helfen.

Dies ist das Werkzeug: https://www.red-gate.com/products/mysql/mysql-data-compare/index - Dadurch werden Objekte und Daten verglichen.

Noch einer : https://github.com/DBDiff/DBDiff