Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เปรียบเทียบสองตารางและส่งคืนรหัสที่ขาดหายไปใน MySQL?


หากต้องการเปรียบเทียบสองตารางและส่งคืนรหัสที่ขาดหายไป คุณต้องใช้แบบสอบถามย่อย ไวยากรณ์มีดังนี้ −

เลือก yourFirstTableName.yourIdColumnName จาก yourFirstTableNameWHERE NOT IN (เลือก yourSecondTableName.yourIdColumnName จาก youSecondTableName);

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตารางที่มีฟิลด์ตัวอย่าง จากนั้นเราจะแทรกระเบียน แบบสอบถามเพื่อสร้างตารางแรก -

First_Table

mysql> สร้างตาราง First_Table -> ( -> Id int -> );ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.88 วินาที)

ตอนนี้แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า First_Table(1); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.68 วินาที)mysql> แทรกลงในค่า First_Table (2); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.29 วินาที) mysql> แทรกลงในค่า First_Table ( 3);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที)mysql> แทรกลงในค่า First_Table(4) แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.20 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก First_Table;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+------+| รหัส |+------+| 1 || 2 || 3 || 4 |+------+4 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อสร้างตารางที่สอง -

Second_Table

mysql> สร้างตาราง Second_Table -> ( -> Id int -> );ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.60 วินาที)

ตอนนี้คุณสามารถแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า Second_Table (2); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที) mysql> แทรกลงในค่า Second_Table (4) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) แสดงระเบียนทั้งหมดจากตารางโดยใช้ เลือกคำสั่ง:mysql> เลือก *จาก Second_Table;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+------+| รหัส |+------+| 2 || 4 |+------+2 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อเปรียบเทียบสองตารางและส่งคืนรหัสที่ขาดหายไป -

mysql> เลือก First_Table.Id จาก First_Table โดยที่ -> First_Table.Id NOT IN (เลือก Second_Table.Id จาก Second_Table);

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+------+| รหัส |+------+| 1 || 3 |+------+2 แถวในชุด (0.00 วินาที)