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

แทรกข้อมูลลงในตาราง C IF ข้อมูลไม่อยู่ในตาราง B ในขณะที่เปรียบเทียบกับตาราง A ใน MySQL?


สำหรับสิ่งนี้ ใช้ left join บนตาราง A และ B ให้เราสร้างตารางแรก -

mysql> สร้างตาราง demo20−> (−> id int,−> name varchar(20)−> );ตกลง ตกลง 0 แถวได้รับผลกระทบ (1.87 วินาที)

แทรกระเบียนบางส่วนลงในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า demo20 (100,'John'); Query OK, 1 แถวได้รับผลกระทบ (0.07 วินาที)mysql> แทรกลงในค่า demo20 (101,'Bob'); Query OK, 1 แถวได้รับผลกระทบ (0.24 วินาที )mysql> แทรกลงในค่า demo20 (102,'Mike'); Query OK, 1 แถวได้รับผลกระทบ (0.12 วินาที)mysql> แทรกลงในค่า demo20 (103,'Carol'); Query OK, 1 แถวได้รับผลกระทบ (0.15 วินาที)

แสดงบันทึกจากตารางโดยใช้คำสั่ง select -

mysql− เลือก *จาก demo20;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+------+-------+| id | ชื่อ |+------+-------+| 100 | จอห์น || 101 | บ๊อบ || 102 | ไมค์ || 103 | Carol |+------+-------+4 แถวในชุด (0.00 วินาที)

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

mysql> สร้างตาราง demo21−> (−> id int,−> name varchar(20)−> );ตกลง ตกลง 0 แถวได้รับผลกระทบ (1.70 วินาที)

แทรกระเบียนบางส่วนลงในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า demo21 (100, 'Sam'); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า demo21 (101, 'Adam'); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.14 วินาที )mysql> แทรกลงในค่า demo21 (133, 'Bob'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.13 วินาที) mysql> แทรกลงในค่า demo21 (145, 'David'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.15 วินาที)

แสดงบันทึกจากตารางโดยใช้คำสั่ง select -

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+------+-------+| id | ชื่อ |+------+-------+| 100 | แซม || 101 | อดัม || 133 | บ๊อบ || 145 | David |+------+-------+4 แถวในชุด (0.00 วินาที)

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

mysql> สร้างตาราง demo22−> (−> id int,−> name varchar(20)−> );ตกลง ตกลง 0 แถวได้รับผลกระทบ (1.39 วินาที)

ในตอนนี้ สมมติว่า demo20 มีชื่อตาราง A, demo21 มี B และ demo22 มี C การสืบค้นมีดังต่อไปนี้เพื่อแทรกข้อมูลลงในตาราง C หากข้อมูลไม่อยู่ในตาราง B เปรียบเทียบกับ A -

mysql> แทรกลงใน demo22(id,name)−> เลือก tbl1.id,tbl1.name จาก demo20 tbl1−> ซ้าย เข้าร่วม demo21 tbl2 บน tbl2.id=tbl1.id−> โดยที่ tbl2.id เป็นโมฆะ แบบสอบถาม ตกลง ได้รับผลกระทบ 2 แถว (0.21 วินาที) บันทึก:2 รายการซ้ำ:0 คำเตือน:0

แสดงบันทึกจากตารางโดยใช้คำสั่ง select -

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+------+-------+| id | ชื่อ |+------+-------+| 102 | ไมค์ || 103 | Carol |+------+-------+2 แถวในชุด (0.00 วินาที)