Cari rekod dalam satu jadual MySQL yang tidak wujud dalam jadual lain?

WBOY
Lepaskan: 2023-09-09 17:37:07
ke hadapan
1349 orang telah melayarinya

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

Untuk mencari rekod dalam satu jadual MySQL yang tidak wujud dalam jadual lain, kita boleh gunakan Lakukan subquery pada jadual tanpa rekod. Ini boleh difahami dengan lebih baik menggunakan yang berikut Langkah yang diberikan -

Mula-mula buat jadual menggunakan arahan buat. Nama jadual ialah "PresentHistory" dan ia mempunyai Dua lajur. Diberikan di bawah -

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

Selepas mencipta jadual, beberapa rekod akan dimasukkan yang akan muncul dalam jadual kedua: dengan cemerlang. Ini dilakukan dengan bantuan arahan sisip seperti yang ditunjukkan di bawah -

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)
Salin selepas log masuk

Selepas berjaya memasukkan rekod, pernyataan pilih dipaparkan seperti berikut -

mysql> SELECT * from PresentHistory;
Salin selepas log masuk

Selepas melaksanakan pertanyaan di atas, output yang diperolehi ialah.

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

Sekarang, buat jadual kedua menggunakan arahan buat. Jadual itu dinamakan "PastHistory" dan mengandungi dua lajur seperti yang ditunjukkan di bawah.

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

Selepas mencipta jadual, terdapat beberapa rekod dalam jadual pertama dan beberapa rekod dalam jadual pertama Kandungan yang tidak wujud dalam jadual pertama akan dimasukkan ke dalam jadual PastHistory.

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)
Salin selepas log masuk

Kini, terdapat 4 rekod dalam jadual kedua. Antaranya, 2 rekod datang dari jadual pertama, Terdapat 2 rekod dalam jadual kedua yang berbeza.

Anda boleh melihat rekod dalam jadual kedua melalui pernyataan pilih seperti berikut -

mysql> SELECT * from PastHistory;
Salin selepas log masuk

Output pertanyaan di atas ialah

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

Sintaks untuk menyemak jadual untuk rekod yang tidak wujud dalam jadual kedua adalah seperti berikut Seperti di bawah-

SELECT * from yourSecondTableName where columnNamefromSecondtable NOT IN
(SELECT columnNamefromfirsttable from yourFirstTableName);
Salin selepas log masuk

Pertanyaan yang diberikan digunakan untuk mengambil rekod yang berbeza daripada jadual kedua-

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

Output pertanyaan di atas adalah seperti di bawah-

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

Daripada output di atas jelas bahawa kami mendapati Dua item tidak wujud dalam Meja pertama.

Atas ialah kandungan terperinci Cari rekod dalam satu jadual MySQL yang tidak wujud dalam jadual lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan