Heim  >  Artikel  >  Datenbank  >  Datensätze in einer MySQL-Tabelle suchen, die in einer anderen Tabelle nicht vorhanden sind?

Datensätze in einer MySQL-Tabelle suchen, die in einer anderen Tabelle nicht vorhanden sind?

WBOY
WBOYnach vorne
2023-09-09 17:37:071343Durchsuche

查找一个 MySQL 表中不存在于另一个表中的记录?

Um Datensätze in einer MySQL-Tabelle zu finden, die in einer anderen Tabelle nicht vorhanden sind, können wir verwenden Führen Sie eine Unterabfrage für eine Tabelle ohne Datensätze durch. Dies kann anhand des Folgenden besser verstanden werden Angegebene Schritte: Erstellen Sie zunächst eine Tabelle mit dem Befehl „create“. Der Tabellenname ist „PresentHistory“ und das hat er Zwei Spalten. Unten angegeben -

mysql> CREATE table PresentHistory
-> (
-> HisID int,
-> HisName varchar(100)
-> );
Query OK, 0 rows affected (0.54 sec)

Nach dem Erstellen der Tabelle werden einige Datensätze eingefügt, die in der zweiten Tabelle erscheinen: Brillant. Dies geschieht mit Hilfe des Einfügebefehls wie unten gezeigt:

mysql> INSERT into PresentHistory values(1,'John');
Query OK, 1 row affected (0.13 sec)

mysql> INSERT into PresentHistory values(2,'Bob');
Query OK, 1 row affected (0.15 sec)

Nach dem erfolgreichen Einfügen des Datensatzes wird die Select-Anweisung wie folgt angezeigt:

mysql> SELECT * from PresentHistory;

Nach dem Ausführen der obigen Abfrage wird folgende Ausgabe erhalten:

+-------+---------+
| HisID | HisName |
+-------+---------+
| 1     | John    |
| 2     | Bob     |
+-------+---------+
2 rows in set (0.00 sec)

Erstellen Sie nun die zweite Tabelle mit dem Befehl „create“. Die Tabelle heißt „PastHistory“ und enthält zwei Spalten, wie unten gezeigt.

mysql> CREATE table PastHistory
-> (
-> PastId int,
-> PastName varchar(100)
-> );
Query OK, 0 rows affected (0.74 sec)

Nach dem Erstellen der Tabelle gibt es einige Datensätze in der ersten Tabelle und einige Datensätze in der ersten Tabelle Inhalte, die in der ersten Tabelle nicht vorhanden sind, werden in die PastHistory-Tabelle eingefügt.

mysql> INSERT into PastHistory values(1,'John');
Query OK, 1 row affected (0.13 sec)

mysql> INSERT into PastHistory values(2,'Bob');
Query OK, 1 row affected (0.13 sec)

mysql> INSERT into PastHistory values(3,'Carol');
Query OK, 1 row affected (0.17 sec)

mysql> INSERT into PastHistory values(4,'Jason');
Query OK, 1 row affected (0.16 sec)

Jetzt gibt es 4 Datensätze in der zweiten Tabelle. Darunter stammen 2 Datensätze aus der ersten Tabelle, In der zweiten Tabelle gibt es zwei Datensätze, die unterschiedlich sind.

Sie können die Datensätze in der zweiten Tabelle über die SELECT-Anweisung wie folgt anzeigen:

mysql> SELECT * from PastHistory;

Die Ausgabe der obigen Abfrage lautet

+--------+----------+
| PastId | PastName |
+--------+----------+
| 1      | John     |
| 2      | Bob      |
| 3      | Carol    |
| 4      | Jason    |
+--------+----------+
4 rows in set (0.00 sec)

Die Syntax zum Überprüfen einer Tabelle auf Datensätze, die in der zweiten Tabelle nicht vorhanden sind, lautet wie folgt Wie unten –

SELECT * from yourSecondTableName where columnNamefromSecondtable NOT IN
(SELECT columnNamefromfirsttable from yourFirstTableName);

Die angegebene Abfrage wird verwendet, um verschiedene Datensätze aus der zweiten Tabelle abzurufen –

mysql> SELECT * from PastHistory where PastName not in (select HisName from
PresentHistory);

Die Ausgabe der obigen Abfrage ist wie folgt –

+--------+----------+
| PastId | PastName |
+--------+----------+
| 3      | Carol    |
| 4      | Jason    |
+--------+----------+
2 rows in set (0.00 sec)

Aus der obigen Ausgabe ist klar, dass wir zwei Elemente gefunden haben, die dies nicht tun existieren in Erster Tisch.

Das obige ist der detaillierte Inhalt vonDatensätze in einer MySQL-Tabelle suchen, die in einer anderen Tabelle nicht vorhanden sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen