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

SQL Union

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

นั่นคือสิ่งที่ SQL UNION โอเปอเรเตอร์เข้ามา UNION clause สามารถใช้เพื่อรวมผลลัพธ์ของ SELECT . ตั้งแต่สองตัวขึ้นไป แบบสอบถามในชุดผลลัพธ์เดียว

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

ทบทวนแบบสอบถาม

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

นี่คือไวยากรณ์ทั่วไปสำหรับ SQL แบบสอบถาม:

SELECT column_name FROM table_name WHERE your_condititions_are_met;

นี่คือตัวอย่าง SQL แบบสอบถามที่ส่งคืนรายชื่อพนักงานทั้งหมด:

SELECT name FROM employees;

ผลลัพธ์จากการสืบค้นของเรามีดังนี้:

ชื่อ
ลุค
ไมค์
ฮันนาห์
เจฟฟ์
อเล็กซิส
เอ็มม่า
โยนาห์

(7 แถว)

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

หากคุณต้องการดึงข้อมูลจากหลายคอลัมน์ คุณสามารถทำได้โดยแยกชื่อคอลัมน์ด้วยเครื่องหมายจุลภาค หากคุณต้องการรับข้อมูลจากทุกคอลัมน์ คุณสามารถใช้เครื่องหมายดอกจัน (* ) แทน ซึ่งแทนทุกคอลัมน์ในตาราง

SQL ยูเนี่ยน

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

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

นี่คือไวยากรณ์สำหรับ SQL UNION แบบสอบถาม:

SELECT column_name FROM table1_name
UNION SELECT column_name FROM table2_name;

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

เราสามารถใช้ SQL . ต่อไปนี้ สอบถามเพื่อรับรายชื่ออีเมลของทั้งลูกค้าและพนักงานของเรา เพื่อให้เราสามารถส่งประกาศทั้งหมด:

SELECT name, email FROM employees
UNION SELECT name, email FROM customers;

นี่คือผลลัพธ์จากการสืบค้นของเรา:

ชื่อ อีเมล
เอ็มม่า emma.a@gmail.com
โจนาห์ jonah.h@gmail.com
ฮันนาห์ hannah.y@gmail.com
ลุค luke.e@gmail.com
จอห์น john.p@outlook.com
เจฟฟ์ geoff.l@gmail.com
อเล็กซิส alexis.e@gmail.com
เฟร็ด fred.s@gmail.com
เอริน erin.a@gmail.com
เคธี่ katy.l@gmail.com
แอน anne.s@gmail.com
ทอม tom.h@gmail.com
ไมค์ mike.h@gmail.com
ฮันนาห์ hannah.p@gmail.com

(14 แถว)

อย่างที่คุณเห็น UNION . ของเรา แบบสอบถามส่งคืนรายชื่อและที่อยู่อีเมลทั้งหมดสำหรับทั้งลูกค้าและพนักงานของเรา

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

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

SELECT name, email FROM employees
UNION ALL
SELECT name, email FROM customers;

บทสรุป

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