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

MySQL SELECT จากตาราง A ที่ไม่มีอยู่ในตาราง B โดยใช้ JOINS?


หากต้องการ SELECT จากตาราง A ที่ไม่มีอยู่ในตาราง B คุณสามารถใช้ left join ต่อไปนี้เป็นไวยากรณ์ -

เลือก yourTableNameA.* from yourTableNameA left join yourTableNameB on yourTableNameA.yourColumnName =yourTableNameB.yourColumnNamewhere yourTableNameB.yourColumnNameIS NULL;

ให้เราสร้างตารางก่อน ต่อไปนี้เป็นแบบสอบถาม -

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

ต่อไปนี้เป็นแบบสอบถามเพื่อแทรกระเบียนในตารางโดยใช้คำสั่งแทรก -

mysql> แทรกลงในค่า table_A(10); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.32 วินาที) mysql> แทรกลงในค่า table_A (15); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า table_A ( 35);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที)mysql> แทรกลงในค่า table_A (45); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.13 วินาที)

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

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

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

<ก่อนหน้า>+-------+| ความคุ้มค่า |+-------+| 10 || 15 || 35 || 45 |+-------+4 แถวในชุด (0.00 วินาที)

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

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

ต่อไปนี้เป็นแบบสอบถามเพื่อแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก -

mysql> แทรกลงในค่า table_B (10); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า table_B (20); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า table_B ( 35);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.23 วินาที)mysql> แทรกลงในค่า table_B (60); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.12 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่งเลือก -

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

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

<ก่อนหน้า>+-------+| ความคุ้มค่า |+-------+| 10 || 20 || 35 || 60 |+-------+4 แถวในชุด (0.00 วินาที)

ต่อไปนี้คือแบบสอบถามเพื่อเลือกจากตาราง A ที่ไม่มีอยู่ในตาราง B ด้วย LEFT JOIN -

mysql> เลือก table_A.* -> จาก table_A ซ้าย เข้าร่วม table_B บน table_A.Value =table_B.Value -> โดยที่ table_B.Value IS NULL;

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

<ก่อนหน้า>+-------+| ความคุ้มค่า |+-------+| 15 || 45 |+-------+2 แถวในชุด (0.04 วินาที)