เมื่อคุณทำการสืบค้นฐานข้อมูล คุณอาจต้องการรวมผลลัพธ์ของ 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;
นี่คือผลลัพธ์จากการสืบค้นของเรา:
ชื่อ | อีเมล |
เอ็มม่า | [email protected] |
โจนาห์ | [email protected] |
ฮันนาห์ | [email protected] |
ลุค | [email protected] |
จอห์น | [email protected] |
เจฟฟ์ | [email protected] |
อเล็กซิส | [email protected] |
เฟร็ด | [email protected] |
เอริน | [email protected] |
เคธี่ | [email protected] |
แอน | [email protected] |
ทอม | [email protected] |
ไมค์ | [email protected] |
ฮันนาห์ | [email protected] |
(14 แถว)
อย่างที่คุณเห็น UNION
. ของเรา แบบสอบถามส่งคืนรายชื่อและที่อยู่อีเมลทั้งหมดสำหรับทั้งลูกค้าและพนักงานของเรา
เป็นที่น่าสังเกตว่า UNION
ตัวดำเนินการลบแถวที่ซ้ำกันออกจากผลลัพธ์สุดท้ายที่รวมกัน ซึ่งหมายความว่าหากพนักงานคนใดคนหนึ่งเป็นลูกค้า เราก็จะเห็นข้อมูลของพวกเขาเพียงครั้งเดียว
แม้ว่าจะได้ผลในตัวอย่างข้างต้น แต่ถ้าคุณต้องการส่งคืนผลลัพธ์ที่มีแถวที่ซ้ำกัน คุณจะต้องเพิ่ม ALL
คำหลักในแบบสอบถามของคุณ นี่คือตัวอย่าง:
SELECT name, email FROM employees UNION ALL SELECT name, email FROM customers;
บทสรุป
ในบทช่วยสอนนี้ เราได้แจกแจงวิธีใช้ UNION
โอเปอเรเตอร์บน SQL
เซิร์ฟเวอร์ ตามที่เราได้พูดคุยกัน UNION
สามารถใช้เพื่อรับข้อมูลจากสองตารางและรวมการตอบสนองเป็นตารางเดียว ตัวอย่างเช่น หากคุณต้องการรับรายชื่อที่อยู่ซัพพลายเออร์และผู้จัดจำหน่ายของคุณ ซึ่งทั้งคู่จัดเก็บไว้ในตารางแยกกัน คุณสามารถใช้ UNION
สอบถามค่ะ