ความแตกต่างของ SQL ระหว่างตัวดำเนินการ Union, Union All และ Union Distinct

Khwam Taek Tang Khxng Sql Rahwang Taw Danein Kar Union Union All Laea Union Distinct



SQL ให้ตัวดำเนินการ UNION แก่เรา ซึ่งทำให้เราสามารถรวมชุดผลลัพธ์ของคำสั่ง SELECT สองชุดขึ้นไปเป็นชุดผลลัพธ์ชุดเดียว มีสามประเภทหลักของตัวดำเนินการ UNION ใน SQL: UNION, UNION ALL และ UNION DISTINCT

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







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



ตัวดำเนินการ SQL UNION

ดังที่ได้กล่าวไปแล้ว ตัวดำเนินการ UNION ช่วยให้เราสามารถรวมชุดผลลัพธ์ของคำสั่ง Select สองชุดขึ้นไป และลบค่าที่ซ้ำกันออก ไวยากรณ์ของตัวดำเนินการ UNION เป็นดังนี้:



เลือกคอลัมน์ 1, คอลัมน์ 2, ...
จากตารางที่ 1
ยูเนี่ยน
เลือกคอลัมน์ 1, คอลัมน์ 2, ...
จากตารางที่ 2;


ในไวยากรณ์ตัวอย่างก่อนหน้านี้ เราใช้คำสั่ง SELECT เพื่อดึงข้อมูลจากตารางที่ระบุ จากนั้นตัวดำเนินการ UNION จะรวมชุดผลลัพธ์สองชุดเป็นชุดเดียว ลองมาดูตัวอย่างวิธีการทำโดยใช้ตารางนักแสดงที่กำหนดไว้ในฐานข้อมูล Sakila





พิจารณาตัวอย่างคิวรีต่อไปนี้ที่ดึงข้อมูลชื่อและนามสกุลของนักแสดงจากตารางนักแสดงและตารางของลูกค้า:

เลือก first_name, last_name
จากนักแสดง
ยูเนี่ยน
เลือก first_name, last_name
จากลูกค้า เลือก first_name, last_name
จากนักแสดง
ยูเนี่ยน
เลือก first_name, last_name
จากลูกค้า


ข้อความค้นหาก่อนหน้าจะลบชื่อและนามสกุลจากทั้งตารางนักแสดงและลูกค้า และส่งกลับค่าเป็นผลลัพธ์เดียว



เอาต์พุตตัวอย่างเป็นดังนี้:

ตัวดำเนินการ SQL UNION ทั้งหมด

ไม่เหมือนกับตัวดำเนินการ UNION ซึ่งจะลบค่าที่ซ้ำกันออกจากชุดผลลัพธ์ ตัวดำเนินการ UNION จะส่งคืนแถวของตารางทั้งหมดรวมถึงค่าที่ซ้ำกัน

ไวยากรณ์เป็นดังนี้:

เลือกคอลัมน์ 1, คอลัมน์ 2, ...
จากตารางที่ 1
ยูเนี่ยนออล
เลือกคอลัมน์ 1, คอลัมน์ 2, ...
จากตารางที่ 2;


ตัวอย่างต่อไปนี้เลือกชื่อและนามสกุลจากตารางนักแสดงและลูกค้าในฐานข้อมูล Sakila:

เลือก first_name, last_name
จากนักแสดง
ยูเนี่ยนออล
เลือก first_name, last_name
จากลูกค้า


เอาต์พุตตัวอย่างเป็นดังนี้:

ตัวดำเนินการ DISTINCT ของ SQL UNION

ตัวดำเนินการสหภาพประเภทอื่นคือ UNION DISTINCT ตัวดำเนินการนี้ซ้ำกับตัวดำเนินการ UNION ซึ่งดำเนินการคล้ายกัน

ไวยากรณ์เป็นดังนี้:

เลือกคอลัมน์ 1, คอลัมน์ 2, ...
จากตารางที่ 1
ความแตกต่างของสหภาพ
เลือกคอลัมน์ 1, คอลัมน์ 2, ...
จากตารางที่ 2;


คำสั่ง SELECT ดึงข้อมูลจากตารางที่ระบุ และตัวดำเนินการ UNION DISTINCT จะรวมชุดผลลัพธ์เป็นชุดผลลัพธ์เดียวที่มีแถวที่ไม่ซ้ำกัน

ในตัวอย่างฐานข้อมูล Sakila เราสามารถเรียกใช้คำสั่งต่อไปนี้:

เลือก first_name, last_name
จากนักแสดง
ความแตกต่างของสหภาพ
เลือก first_name, last_name
จากลูกค้า


สิ่งนี้ควรส่งคืนผลลัพธ์ที่คล้ายกับตัวดำเนินการ UNION

บทสรุป

เราได้เรียนรู้วิธีการทำงานกับ UNIONS ประเภทต่างๆ ใน ​​SQL ตัวดำเนินการ UNION จะรวมชุดผลลัพธ์ของคำสั่ง Select สองคำสั่งขึ้นไป และลบเรกคอร์ดที่ซ้ำกัน UNION ALL ดำเนินการที่คล้ายกันแต่มีแถวที่ซ้ำกัน สุดท้าย UNION DISTINCT จะเหมือนกับตัวดำเนินการ UNION ดั้งเดิม