Heim >Datenbank >MySQL-Tutorial >Wie kann ich Diskrepanzen zwischen zwei SQL-Tabellen erkennen?
Vergleichen von SQL-Tabellen, um Datenunterschiede zu finden
Um die Datenkonsistenz über zwei SQL Server-Tabellen hinweg sicherzustellen, müssen für jede einzelne Zeilen eindeutig identifiziert werden. Dadurch werden Unstimmigkeiten und fehlende Daten deutlich. So erreichen Sie dies mithilfe von SQL-Abfragen:
Ein Ansatz verwendet den EXCEPT
-Operator:
(SELECT * FROM table1 EXCEPT SELECT * FROM table2)
Diese Abfrage zeigt Zeilen an, die in table1
vorhanden, aber in table2
nicht vorhanden sind. Um Zeilen zu finden, die für table2
eindeutig sind, tauschen Sie einfach die Tabellennamen aus:
(SELECT * FROM table2 EXCEPT SELECT * FROM table1)
Für eine kombinierte Ansicht aller eindeutigen Zeilen in beiden Tabellen verwenden Sie UNION ALL
:
<code class="language-sql">(SELECT * FROM table1 EXCEPT SELECT * FROM table2) UNION ALL (SELECT * FROM table2 EXCEPT SELECT * FROM table1)</code>
Wenn Ihre Tabellen keine NULL-Werte haben, ist NOT EXISTS
eine effizientere Methode. Dieses Beispiel ruft Zeilen von table1
ab, die nicht in table2
:
<code class="language-sql">SELECT * FROM table1 WHERE NOT EXISTS ( SELECT * FROM table2 WHERE table2.column1 = table1.column1 )</code>
Denken Sie daran, table1
, table2
und column1
durch Ihre tatsächlichen Tabellen- und Spaltennamen zu ersetzen. Wählen Sie die Methode, die am besten zu Ihren Daten und Bedürfnissen passt.
Das obige ist der detaillierte Inhalt vonWie kann ich Diskrepanzen zwischen zwei SQL-Tabellen erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!