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

ความแตกต่างระหว่างสองตัวเลือกใน MySQL?


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

SELECT *FROM yourTableName โดยที่ yourColumnName ไม่อยู่ใน (SELECT yourColumnName FROM youTableName WHERE yourCondition;

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

mysql> สร้างตาราง DifferenceSelectDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> UserId int, -> UserValue int, -> PRIMARY KEY(Id) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.87 วินาที) 

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

mysql> แทรกลงในค่า DifferenceSelectDemo(UserId,UserValue) (10,10); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.24 วินาที) mysql> แทรกลงในค่า DifferenceSelectDemo (UserId, UserValue) (10,20); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า DifferenceSelectDemo (UserId, UserValue) (20,30); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า DifferenceSelectDemo (UserId, UserValue) (20,20);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที) mysql> แทรกลงในค่า DifferenceSelectDemo (UserId, UserValue) (30,40); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า DifferenceSelectDemo (UserId, UserValue) ( 30,20);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.15 วินาที)

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

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

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

<ก่อนหน้า>+----+---------+-----------+| รหัส | รหัสผู้ใช้ | UserValue |+----+-------+-----------+| 1 | 10 | 10 || 2 | 10 | 20 || 3 | 20 | 30 || 4 | 20 | 20 || 5 | 30 | 40 || 6 | 30 | 20 |+----+--------+-----------+6 แถวในชุด (0.02 วินาที)

นี่คือแบบสอบถามเพื่อรับความแตกต่างระหว่างสองตัวเลือก:

mysql> เลือก *จาก DifferenceSelectDemo -> โดยที่ UserValue ไม่อยู่ใน (เลือก UserValue จาก DifferenceSelectDemo โดยที่ Id=1)

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

<ก่อนหน้า>+----+---------+-----------+| รหัส | รหัสผู้ใช้ | UserValue |+----+-------+-----------+| 2 | 10 | 20 || 3 | 20 | 30 || 4 | 20 | 20 || 5 | 30 | 40 || 6 | 30 | 20 |+----+--------+-----------+5 แถวในชุด (0.09 วินาที)