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 № 1Ich 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