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
จากลูกค้า
เอาต์พุตตัวอย่างเป็นดังนี้:
ตัวดำเนินการ 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 ดั้งเดิม