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

MySQL Select Statement DISTINCT สำหรับหลายคอลัมน์?


เพื่อให้เข้าใจคำสั่ง MySQL เลือก DISTINCT สำหรับหลายคอลัมน์ ให้เราดูตัวอย่างและสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้

mysql> สร้างตาราง selectDistinctDemo -> ( -> InstructorId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> StudentId int, -> TechnicalSubject varchar(100) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.50 วินาที)

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

mysql> แทรกลงในค่า selectDistinctDemo(StudentId,TechnicalSubject) (121,'Java');Query OK, 1 แถวได้รับผลกระทบ (0.15 วินาที)mysql> แทรกลงในค่า selectDistinctDemo (StudentId,TechnicalSubject) (121,'MongoDB');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที)mysql> แทรกลงในค่า selectDistinctDemo (StudentId,TechnicalSubject) (121,'MySQL'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงใน selectDistinctDemo (StudentId, TechnicalSubject) ค่า (298, 'Python'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงใน selectDistinctDemo (StudentId,TechnicalSubject) ค่า (298, 'SQL Server'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า selectDistinctDemo(StudentId,TechnicalSubject) (397,'C#'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที)

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

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

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

<ก่อนหน้า>+--------------+-----------+-----------------+ | InstructorId | รหัสนักศึกษา | หัวข้อทางเทคนิค |+-------------+-----------+-----------------+| 1 | 121 | ชวา || 2 | 121 | MongoDB || 3 | 121 | MySQL || 4 | 298 | งูหลาม || 5 | 298 | SQL Server || 6 | 397 | C# |+-------------+-----------+-----------------+6 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อใช้คำสั่ง select DISTINCT สำหรับหลายคอลัมน์

mysql> เลือก InstructorId,StudentId,TechnicalSubject จาก selectDistinctDemo-> โดยที่ InstructorId IN -> ( -> เลือก max(InstructorId) จาก selectDistinctDemo -> กลุ่มตาม StudentId -> )-> สั่งซื้อโดย InstructorId desc;

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

<ก่อนหน้า>+--------------+-----------+-----------------+ | InstructorId | รหัสนักศึกษา | หัวข้อทางเทคนิค |+-------------+-----------+-----------------+| 6 | 397 | C# || 5 | 298 | SQL Server || 3 | 121 | MySQL |+---------------------+-----------+-----------------+3 แถวในชุด (0.10 วินาที)