การเลือกและรวมคอลัมน์จากสองตาราง 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;

การอธิบายคำสั่ง

  1. การเลือกคอลัมน์:

    • เราเริ่มต้นด้วย SELECT ColumnA FROM Table1 เพื่อดึงข้อมูลทั้งหมดจาก ColumnA ใน Table1
    • ส่วนถัดไป, SELECT ColumnA FROM Table2, ทำเช่นเดียวกันเพื่อดึงข้อมูลจาก Table2
  2. การรวมผลลัพธ์:

    • ตัวดำเนินการ UNION จะรวมชุดผลลัพธ์จากทั้งสองคำสั่ง SELECT
    • หมายเหตุว่าโดยค่าเริ่มต้น UNION จะลบค่าที่ซ้ำกัน ดังนั้นหากมีการซ้ำซ้อนในค่าของ ColumnA ระหว่างสองตาราง ข้อมูลเหล่านั้นจะปรากฏเพียงครั้งเดียวในผลลัพธ์สุดท้าย
  3. การจัดเรียงผลลัพธ์:

    • ประโยค 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 วิธีการนี้ไม่เพียงแต่ทำให้การดึงข้อมูลง่ายขึ้น แต่ยังทำให้คำสั่งสอบถามฐานข้อมูลของคุณมีความแข็งแกร่งและยืดหยุ่นมากขึ้น

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