ในการค้นหาระเบียนจากตาราง MySQL หนึ่งตารางที่ไม่มีอยู่ในอีกตารางหนึ่ง เราสามารถใช้แบบสอบถามย่อยสำหรับตารางที่ไม่มีระเบียน สิ่งนี้สามารถเข้าใจได้ดีขึ้นโดยใช้ขั้นตอนที่กำหนด -
ขั้นแรกให้สร้างตารางโดยใช้คำสั่ง create ชื่อตารางคือ 'PresentHistory' และมีสองคอลัมน์ ได้ดังนี้ −
mysql> สร้างตาราง PresentHistory-> (-> HisID int,-> HisName varchar(100)-> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.54 วินาที)
หลังจากสร้างตารางแล้ว ระเบียนบางรายการจะถูกแทรกซึ่งจะปรากฏในตารางที่สองด้วย ทำได้โดยใช้คำสั่ง insert ดังนี้ −
mysql> INSERT ลงในค่า PresentHistory (1,'John');Query OK, 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> INSERT เป็นค่า PresentHistory (2,'Bob');Query OK, 1 แถวได้รับผลกระทบ (0.15 วินาที )
หลังจากแทรกเร็กคอร์ดเรียบร้อยแล้ว จะแสดงด้วยคำสั่ง select ดังนี้ −
mysql> SELECT * จาก PresentHistory;
หลังจากดำเนินการค้นหาข้างต้น ผลลัพธ์ที่ได้คือ
<ก่อนหน้า>+-------+---------+| HisID | HisName |+-------+---------+| 1 | จอห์น || 2 | Bob |+-------+---------+2 แถวในชุด (0.00 วินาที)ตอนนี้สร้างตารางที่สองโดยใช้คำสั่ง create ตารางนี้มีชื่อว่า 'PastHistory' และประกอบด้วยสองคอลัมน์ตามที่ระบุด้านล่าง
mysql> สร้างตาราง PastHistory-> (-> PastId int,-> PastName varchar(100)-> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.74 วินาที)
หลังจากสร้างตารางแล้ว บางระเบียนที่มีอยู่ในตารางแรกและบางระเบียนที่ไม่มีอยู่ในตารางแรกจะถูกแทรกลงในตาราง PastHistory
mysql> INSERT ลงในค่า PastHistory (1,'John');Query OK, 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> INSERT ลงในค่า PastHistory (2,'Bob');Query OK, 1 แถวได้รับผลกระทบ (0.13 วินาที )mysql> INSERT ลงในค่า PastHistory(3,'Carol');Query OK, 1 แถวได้รับผลกระทบ (0.17 วินาที)mysql> INSERT เป็นค่า PastHistory (4,'Jason'); Query OK, 1 แถวได้รับผลกระทบ (0.16 วินาที)
ตอนนี้มี 4 ระเบียนในตารางที่สอง จากทั้งหมดนี้มี 2 ระเบียนมาจากตารางแรก และ 2 ระเบียนต่างกันในตารางที่สอง
ระเบียนในตารางที่สองสามารถดูได้ด้วยคำสั่ง select ดังนี้ −
mysql> SELECT * จาก PastHistory;
ผลลัพธ์ของแบบสอบถามข้างต้นคือ
<ก่อนหน้า>+---------+----------+| PastId | PastName |+-------+----------+| 1 | จอห์น || 2 | บ๊อบ || 3 | แครอล || 4 | Jason |+-------+----------+4 แถวในชุด (0.00 วินาที)ไวยากรณ์ในการตรวจสอบระเบียนจากตารางหนึ่งที่ไม่มีอยู่ในตารางที่สองมีดังต่อไปนี้ -
เลือก * จาก yourSecondTableName โดยที่ columnNamefromSecondtable NOT IN (SELECT columnNamefromfirsttable from yourFirstTableName);
แบบสอบถามที่กำหนดจะใช้เพื่อรับระเบียนที่แตกต่างกันในตารางที่สอง -
mysql> SELECT * จาก PastHistory โดยที่ PastName ไม่ได้อยู่ใน (เลือก HisName fromPresentHistory);
ผลลัพธ์ของแบบสอบถามข้างต้นเป็นดังนี้ −
<ก่อนหน้า>+---------+----------+| PastId | PastName |+-------+----------+| 3 | แครอล || 4 | Jason |+-------+----------+2 แถวในชุด (0.00 วินาที)จากผลลัพธ์ข้างต้น เป็นที่ชัดเจนว่าเราได้พบระเบียนสองรายการที่ไม่มีอยู่ในตารางแรก