ในขณะที่จัดการข้อมูลในฐานข้อมูลเรามักจะใช้ตัวดำเนินการตั้งค่าใน SQL เพื่อดึงข้อมูลตามความต้องการของเราโดยการรวมคำสั่ง SELECT อย่างน้อยสองคำสั่ง ในบทความเกี่ยวกับ SQL UNION นี้ฉันจะพูดถึงตัวดำเนินการ UNION ที่ใช้ในการดึงข้อมูลตามลำดับต่อไปนี้:
- ตัวดำเนินการ SQL UNION คืออะไร?
- ไวยากรณ์:
- ความแตกต่างระหว่าง UNION และ UNION ALL
- ตัวอย่าง SQL 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 และ UNION ALL
เพื่อความเข้าใจที่ดีขึ้นเราจะพิจารณาตารางต่อไปนี้เพื่อแสดงตัวอย่างต่างๆ
โต๊ะพนักงาน
EmpID | ชื่อ | EmpAge | เมือง | รหัสไปรษณีย์ | ประเทศ |
หนึ่ง | เอ็มม่า | 2. 3 | เบอร์ลิน | 12109 | เยอรมนี |
2 | ราหุล | 26 | มุมไบ | 400015 | อินเดีย |
3 | Aayra | 24 | นิวยอร์ก | 10014 | ใช้ |
4 | จอห์น | 32 | ลอนดอน | E1 7AE | สหราชอาณาจักร |
5 | เดเร็ค | 29 | นิวยอร์ก | 10012 | ใช้ |
ตารางโครงการ
ProjectID | ชื่อ | วันทำงาน | เมือง | รหัสไปรษณีย์ | ประเทศ |
หนึ่ง | โครงการ 1 | 10 | เบอร์ลิน | 12109 | เยอรมนี |
2 | โครงการ 2 | 7 | มุมไบ | 400015 | อินเดีย |
3 | โครงการ 3 | ยี่สิบ | เดลี | 110006 | อินเดีย |
4 | โครงการ 4 | สิบห้า | มุมไบ | 400015 | อินเดีย |
5 | โครงการ 5 | 28 | เบอร์ลิน | 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 |
สิบเอ็ด | 12 | 4 | 20000 |
22 | 16 | 3 | 35000 |
33 | 30 | หนึ่ง | 60000 |
44 | 25 | 3 | 45000 |
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 |
3 | Aayra | 35000 |
3 | Aayra | 45000 |
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 |
3 | Aayra | 35000 |
3 | Aayra | 45000 |
4 | จอห์น | 20000 |
5 | เดเร็ค | NULL |
4 | จอห์น | 20000 |
3 | Aayra | 35000 |
หนึ่ง | เอ็มม่า | 60000 |
3 | Aayra | 35000 |
หนึ่ง | เอ็มม่า | 50,000 |
โดยสิ่งนี้ฉันมาถึงตอนท้ายของบทความนี้เกี่ยวกับ SQL UNION ฉันหวังว่าคุณจะสนุกกับการอ่านบทความเกี่ยวกับ SQL UNION เราได้เห็นวิธีต่างๆในการใช้คำสั่ง UNION และ UNION ALL เพื่อช่วยคุณในการเขียนแบบสอบถาม หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ MySQL และทำความรู้จักกับฐานข้อมูลเชิงสัมพันธ์โอเพนซอร์สนี้จากนั้นตรวจสอบไฟล์ ซึ่งมาพร้อมกับการฝึกอบรมสดที่นำโดยผู้สอนและประสบการณ์โครงการในชีวิตจริง การฝึกอบรมนี้จะช่วยให้คุณเข้าใจ MySQL ในเชิงลึกและช่วยให้คุณมีความเชี่ยวชาญในเรื่องนั้น ๆ
มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของ 'SQL UNION' แล้วเราจะติดต่อกลับไป