SQL Union - คำแนะนำที่ครอบคลุมเกี่ยวกับตัวดำเนินการ UNION



บทความนี้เป็นคำแนะนำเชิงลึกเกี่ยวกับวิธีใช้ตัวดำเนินการ SQL UNION บทความนี้กล่าวถึงความแตกต่างระหว่าง UNION และ UNION ALL พร้อมตัวอย่าง

ในขณะที่จัดการข้อมูลในฐานข้อมูลเรามักจะใช้ตัวดำเนินการตั้งค่าใน SQL เพื่อดึงข้อมูลตามความต้องการของเราโดยการรวมคำสั่ง SELECT อย่างน้อยสองคำสั่ง ในบทความเกี่ยวกับ SQL UNION นี้ฉันจะพูดถึงตัวดำเนินการ UNION ที่ใช้ในการดึงข้อมูลตามลำดับต่อไปนี้:

เริ่มกันเลย!





ตัวดำเนินการ SQL UNION คืออะไร?

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

ส่วนคำสั่ง UNION ให้เฉพาะค่าที่ไม่ซ้ำกันเป็นเอาต์พุต ในกรณีที่คุณต้องการให้ค่าซ้ำกันคุณต้องใช้คำสั่ง UNION ALL



ต่อไปในบทความนี้เกี่ยวกับ SQL UNION ให้เราเข้าใจไวยากรณ์

ไวยากรณ์ของ SQL UNION

ไวยากรณ์ของ UNION

เลือก Column1, Column2, Column3, ... , ColumnN จาก Table1 UNION SELECT Column1, Column2, Column3, ... , ColumnN จาก Table2

UNION ALL Syntax

เลือก Column1, Column2, Column3, ... , ColumnN จาก Table1 UNION ALL SELECT Column1, Column2, Column3, ... , ColumnN จาก Table2

ต่อไปในบทความนี้ให้เราเข้าใจความแตกต่างระหว่าง UNION และ UNION ALL

ความแตกต่างระหว่าง SQL UNION และ UNION ALL



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

ต่อไปในบทความเกี่ยวกับ SQL UNION ให้เราเข้าใจวิธีต่างๆในการใช้ตัวดำเนินการนี้

ตัวอย่างของ SQL UNION และ UNION ALL

เพื่อความเข้าใจที่ดีขึ้นเราจะพิจารณาตารางต่อไปนี้เพื่อแสดงตัวอย่างต่างๆ

โต๊ะพนักงาน

EmpID ชื่อ EmpAge เมือง รหัสไปรษณีย์ ประเทศ
หนึ่งเอ็มม่า2. 3เบอร์ลิน12109เยอรมนี
2ราหุล26มุมไบ400015อินเดีย
3Aayra24นิวยอร์ก10014ใช้
4จอห์น32ลอนดอนE1 7AEสหราชอาณาจักร
5เดเร็ค29นิวยอร์ก10012ใช้

ตารางโครงการ

ProjectID ชื่อ วันทำงาน เมือง รหัสไปรษณีย์ ประเทศ
หนึ่งโครงการ 110เบอร์ลิน12109เยอรมนี
2โครงการ 27มุมไบ400015อินเดีย
3โครงการ 3ยี่สิบเดลี110006อินเดีย
4โครงการ 4สิบห้ามุมไบ400015อินเดีย
5โครงการ 528เบอร์ลิน12109เยอรมนี

ให้เราเริ่มต้นด้วยตัวอย่าง

ตัวอย่าง SQL UNION

ตัวอย่าง UNION Operator

เขียนแบบสอบถามเพื่อดึงเมืองที่แตกต่างจากตารางพนักงานและโครงการ

เลือกเมืองจากพนักงาน UNION เลือกเมืองจากโครงการสั่งซื้อตามเมือง

เอาท์พุต:

เมือง

เบอร์ลิน

qlikview กวดวิชาทีละขั้นตอน

เดลี

ลอนดอน

มุมไบ

นิวยอร์ก

ตัวอย่าง UNION ALL Operator

เขียนแบบสอบถามเพื่อดึงเมืองจากตารางพนักงานและโครงการ ที่นี่ต้องรวมค่าที่ซ้ำกัน

เลือกเมืองจากพนักงาน UNION เมืองที่เลือกทั้งหมดจากโครงการสั่งซื้อตามเมือง

เอาท์พุต:

เมือง

เบอร์ลิน

เบอร์ลิน

เบอร์ลิน

อะไรคือความแตกต่างระหว่างการเอาชนะและการโอเวอร์โหลด

เดลี

ลอนดอน

มุมไบ

มุมไบ

มุมไบ

นิวยอร์ก

นิวยอร์ก

ถัดไปในบทความนี้ให้เราเข้าใจวิธีการใช้ UNION clause กับ SQL Aliases

ในเวลาคอมไพเลอร์ java

UNION พร้อม SQL Aliases

ใช้ชื่อแทน SQLเพื่อให้ตารางหรือคอลัมน์เป็นชื่อชั่วคราว ดังนั้นให้เราเขียนแบบสอบถามเพื่อแสดงรายการพนักงานและโครงการที่ไม่ซ้ำกันทั้งหมด

เลือกประเภท 'พนักงาน' เป็นชื่อเมืองประเทศจากพนักงาน UNION SELECT 'Project' ชื่อเมืองประเทศจากโครงการ

เอาท์พุต:

ประเภท ชื่อ เมือง ประเทศ
พนักงานเอ็มม่าเบอร์ลินเยอรมนี
พนักงานราหุลมุมไบอินเดีย
พนักงานAayraนิวยอร์กใช้
พนักงานจอห์นลอนดอนสหราชอาณาจักร
พนักงานเดเร็คนิวยอร์กใช้
โครงการโครงการ 1เบอร์ลินเยอรมนี
โครงการโครงการ 2มุมไบอินเดีย
โครงการโครงการ 3เดลีอินเดีย
โครงการโครงการ 4มุมไบอินเดีย
โครงการโครงการ 5เบอร์ลินเยอรมนี

UNION กับ WHERE clause

เขียนแบบสอบถามเพื่อดึงเมืองในอินเดียที่แตกต่างกันและรหัสไปรษณีย์จากทั้งตารางพนักงานและโครงการ

เลือกเมืองรหัสไปรษณีย์ประเทศจากพนักงาน WHERE Country = 'India' UNION SELECT City, PostalCode, Country FROM Projects WHERE Country = 'India' ORDER BY City

เอาท์พุต:

เมือง รหัสไปรษณีย์ ประเทศ
เดลี110006อินเดีย
มุมไบ400015อินเดีย

UNION ALL พร้อม WHERE clause

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

เลือกเมืองรหัสไปรษณีย์ประเทศจากพนักงาน WHERE Country = 'India' UNION ALL SELECT City, PostalCode, Country FROM Projects WHERE Country = 'India' ORDER BY City

เอาท์พุต:

เมือง รหัสไปรษณีย์ ประเทศ
เดลี110006อินเดีย
มุมไบ400015อินเดีย
มุมไบ400015อินเดีย
มุมไบ400015อินเดีย

ก้าวต่อไปในบทความนี้ให้เราทำความเข้าใจเกี่ยวกับการใช้คำสั่ง UNION และ UNION ALL กับ JOINSJOINS ใน SQL คือ ซึ่งใช้ในการรวมแถวจากสองตารางขึ้นไปโดยยึดตามคอลัมน์ที่เกี่ยวข้องระหว่างตารางเหล่านั้น

UNION กับ JOINS

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

ตาราง ProjectDetails

PID วันทำงาน EmpID CostforProject
สิบเอ็ด12420000
2216335000
3330หนึ่ง60000
4425345000
55ยี่สิบเอ็ดหนึ่ง50,000
เลือก EmpID, ชื่อ, CostforProject จากพนักงาน LEFT JOIN ProjectDetails เกี่ยวกับพนักงาน EmpID = ProjectDetails.EmpID UNION SELECT EmpID, Name, CostforProject จากพนักงาน RIGHT JOIN ProjectDetails เกี่ยวกับพนักงาน EmpID = ProjectDetails.EmpID

เอาท์พุต:

EmpID ชื่อ CostforProject
หนึ่งเอ็มม่า60000
หนึ่งเอ็มม่า50,000
2ราหุลNULL
3Aayra35000
3Aayra45000
4จอห์น20000
5เดเร็คNULL

ยูเนี่ยนทั้งหมดพร้อมเข้าร่วม

เขียนแบบสอบถามเพื่อดึงข้อมูล EmpID, Name และ CostforProject จากตารางพนักงานและ ProjectDetails โดยอนุญาตให้มีค่าที่ซ้ำกัน

เลือก EmpID, ชื่อ, CostforProject จากพนักงาน LEFT JOIN ProjectDetails เกี่ยวกับพนักงาน EmpID = ProjectDetails.EmpID UNION ALL SELECT EmpID, Name, CostforProject จากพนักงาน RIGHT JOIN ProjectDetails เกี่ยวกับพนักงาน EmpID = ProjectDetails.EmpID

เอาท์พุต:

EmpID ชื่อ CostforProject
หนึ่งเอ็มม่า60000
หนึ่งเอ็มม่า50,000
2ราหุลNULL
3Aayra35000
3Aayra45000
4จอห์น20000
5เดเร็คNULL
4จอห์น20000
3Aayra35000
หนึ่งเอ็มม่า60000
3Aayra35000
หนึ่งเอ็มม่า50,000

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

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของ 'SQL UNION' แล้วเราจะติดต่อกลับไป