การเลือกและรวมคอลัมน์จากสองตาราง SQL
เมื่อทำงานกับฐานข้อมูล มักจะพบสถานการณ์ที่คุณต้องดึงข้อมูลจากหลายตาราง หนึ่งในสถานการณ์ดังกล่าวเกิดขึ้นเมื่อคุณมีสองตารางที่มีคอลัมน์ร่วมกัน ในบล็อกโพสต์นี้เราจะสำรวจวิธีการเลือกคอลัมน์ที่เฉพาะเจาะจง, ColumnA
, จากสองตารางที่แตกต่างกัน—Table1
และ Table2
—และส่งคืนเป็นชุดผลลัพธ์เดียว
ปัญหา
สมมติว่าคุณมีสองตารางในฐานข้อมูลของคุณ:
-
Table1 มีคอลัมน์ชื่อ
ColumnA
ที่มีค่า:- a
- b
- c
-
Table2 ยังมีคอลัมน์ชื่อ
ColumnA
ที่มีค่า:- d
- e
- f
เป้าหมายของคุณคือการดึงข้อมูลทั้งหมดของ ColumnA
จากทั้งสองตารางมาเป็นคอลัมน์เดียวในชุดผลลัพธ์ ซึ่งหมายความว่าคุณต้องการให้ผลลัพธ์แสดงดังนี้:
a
b
c
d
e
f
วิธีการแก้ปัญหา
เพื่อให้บรรลุประสิทธิผลนี้ เราสามารถใช้คำสั่ง SQL ด้วยตัวดำเนินการ UNION
ตัวดำเนินการ UNION
ช่วยให้เราสามารถรวมผลลัพธ์จากสองคำสั่ง SELECT
ขึ้นไปเป็นชุดผลลัพธ์เดียว
ตัวอย่างคำสั่ง SQL
คำสั่ง SQL ที่ทำงานนี้ได้คือ:
SELECT ColumnA FROM Table1
UNION
SELECT ColumnA FROM Table2
ORDER BY 1;
การอธิบายคำสั่ง
-
การเลือกคอลัมน์:
- เราเริ่มต้นด้วย
SELECT ColumnA FROM Table1
เพื่อดึงข้อมูลทั้งหมดจากColumnA
ในTable1
- ส่วนถัดไป,
SELECT ColumnA FROM Table2
, ทำเช่นเดียวกันเพื่อดึงข้อมูลจากTable2
- เราเริ่มต้นด้วย
-
การรวมผลลัพธ์:
- ตัวดำเนินการ
UNION
จะรวมชุดผลลัพธ์จากทั้งสองคำสั่งSELECT
- หมายเหตุว่าโดยค่าเริ่มต้น
UNION
จะลบค่าที่ซ้ำกัน ดังนั้นหากมีการซ้ำซ้อนในค่าของColumnA
ระหว่างสองตาราง ข้อมูลเหล่านั้นจะปรากฏเพียงครั้งเดียวในผลลัพธ์สุดท้าย
- ตัวดำเนินการ
-
การจัดเรียงผลลัพธ์:
- ประโยค
ORDER BY 1
จะจัดเรียงผลลัพธ์สุดท้ายตามคอลัมน์แรก ซึ่งในกรณีนี้คือColumnA
- ประโยค
เมื่อใดควรใช้ UNION ALL
หากคุณมั่นใจว่าค่าของ ColumnA
จาก Table1
และ Table2
จะไม่ซ้ำกันเลย ให้นำเสนอการใช้ UNION ALL
แทน UNION
ตัวเลือกนี้ช่วยหลีกเลี่ยงความยุ่งยากในการตรวจสอบค่าซ้ำและสามารถปรับปรุงประสิทธิภาพได้:
SELECT ColumnA FROM Table1
UNION ALL
SELECT ColumnA FROM Table2
ORDER BY 1;
สรุป
โดยสรุป การรวมข้อมูลจากหลายตารางใน SQL สามารถทำได้อย่างมีประสิทธิภาพโดยใช้ตัวดำเนินการ UNION
วิธีการนี้ไม่เพียงแต่ทำให้การดึงข้อมูลง่ายขึ้น แต่ยังทำให้คำสั่งสอบถามฐานข้อมูลของคุณมีความแข็งแกร่งและยืดหยุ่นมากขึ้น
ตอนนี้คุณสามารถดึงและรวมคอลัมน์จากตารางที่แตกต่างกันได้อย่างง่ายดาย ซึ่งช่วยเสริมความสามารถในการจัดการและวิเคราะห์ข้อมูลของคุณอย่างมีประสิทธิภาพ!