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

วิธีการเลือกจากตาราง MySQL A ที่ไม่มีอยู่ในตาราง B?


คุณสามารถใช้ตัวดำเนินการ IN เพื่อเลือกจากตารางหนึ่งที่ไม่มีอยู่ในอีกตารางหนึ่ง เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง

ชื่อตารางแรกคือ A และชื่อตารางที่สองคือ B การสืบค้นเพื่อสร้างตารางมีดังนี้

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

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

แบบสอบถามมีดังนี้

mysql> แทรกลงในค่า A (10); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.23 วินาที) mysql> แทรกลงในค่า A (20) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า A ( 30); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า A (50); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า A (80); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.12 วินาที)

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

แบบสอบถามมีดังนี้

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

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

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

นี่คือแบบสอบถามเพื่อสร้างตารางที่สองด้วยชื่อ B

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

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

แบบสอบถามมีดังนี้

mysql> แทรกลงในค่า B (20) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า B (50) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที)

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

แบบสอบถามมีดังนี้

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

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

<ก่อนหน้า>+---------+| ค่าที่ 2 |+---------+| 20 || 50 |+-------+2 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อเลือกจากตาราง A ซึ่งไม่มีอยู่ในตาราง B

mysql> SELECT * จากที่ไม่มีค่า (เลือกค่า 2 จาก B);

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

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