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)
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)
Selepas berjaya memasukkan rekod, pernyataan pilih dipaparkan seperti berikut -
mysql> SELECT * from PresentHistory;
Selepas melaksanakan pertanyaan di atas, output yang diperolehi ialah.
+-------+---------+ | HisID | HisName | +-------+---------+ | 1 | John | | 2 | Bob | +-------+---------+ 2 rows in set (0.00 sec)
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)
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)
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;
Output pertanyaan di atas ialah
+--------+----------+ | PastId | PastName | +--------+----------+ | 1 | John | | 2 | Bob | | 3 | Carol | | 4 | Jason | +--------+----------+ 4 rows in set (0.00 sec)
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);
Pertanyaan yang diberikan digunakan untuk mengambil rekod yang berbeza daripada jadual kedua-
mysql> SELECT * from PastHistory where PastName not in (select HisName from PresentHistory);
Output pertanyaan di atas adalah seperti di bawah-
+--------+----------+ | PastId | PastName | +--------+----------+ | 3 | Carol | | 4 | Jason | +--------+----------+ 2 rows in set (0.00 sec)
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!