ทฤษฎีเซตสำหรับ SQL Joins

การ Join ข้อมูลใน SQL

Maham Faisal Khan

Senior Content Developer, DataCamp

Venn diagram และทฤษฎีเซต

ภาพแสดง Venn diagram สามแบบ ได้แก่ UNION, INTERSECT และ EXCEPT โดย UNION มีวงกลมสองวงทับซ้อนกัน ทั้งหมดเป็นสีเขียว INTERSECT มีวงกลมสองวงทับซ้อนกัน แต่เฉพาะส่วนที่ทับซ้อนเท่านั้นที่เป็นสีเขียว และ EXCEPT มีเฉพาะส่วนของวงกลมซ้ายที่ไม่ทับซ้อนกับวงกลมขวาเป็นสีเขียว

การ Join ข้อมูลใน SQL

Venn diagram และทฤษฎีเซต

ภาพแสดง Venn diagram สามแบบ โดยมีสองแบบที่ถูกซ่อนไว้ เน้นเฉพาะแบบ UNION ซึ่งมีวงกลมสองวงทับซ้อนกัน ทั้งหมดเป็นสีเขียว

การ Join ข้อมูลใน SQL

ไดอะแกรม UNION

  • UNION รับตารางสองตารางเป็น input และคืนค่าทุกแถวจากทั้งสองตาราง

ไดอะแกรมแสดงตารางซ้ายและขวา ด้านขวาของไดอะแกรมแสดงผลลัพธ์เมื่อใช้ UNION กับตารางทั้งสอง

การ Join ข้อมูลใน SQL

ไดอะแกรม UNION ALL

  • UNION ALL รับตารางสองตารางและคืนค่าทุกแถวจากทั้งสองตาราง รวมถึงแถวที่ซ้ำกันด้วย

ไดอะแกรมแสดงตารางซ้ายและขวา ด้านขวาของไดอะแกรมแสดงผลลัพธ์เมื่อใช้ UNION ALL กับตารางทั้งสอง

การ Join ข้อมูลใน SQL

ไวยากรณ์ UNION และ UNION ALL

ไวยากรณ์ UNION

SELECT *
FROM left_table
UNION
SELECT *
FROM right_table;

ไวยากรณ์ UNION ALL

SELECT *
FROM left_table
UNION ALL
SELECT *
FROM right_table;
การ Join ข้อมูลใน SQL

ไวยากรณ์ UNION และ UNION ALL

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

การ Join ข้อมูลใน SQL

ไวยากรณ์ UNION และ UNION ALL

ไดอะแกรมแสดงตารางซ้ายและขวา ด้านขวาแสดงผลลัพธ์เมื่อใช้ UNION โดยมีลูกศรชี้ว่าตารางทั้งสองต้องมีจำนวนคอลัมน์และประเภทฟิลด์ตรงกัน ด้านขวาแสดง result set พร้อมไฮไลต์ว่าชื่อฟิลด์มาจากตารางซ้าย แม้จะมีการตั้งชื่อแทนก็ตาม

การ Join ข้อมูลใน SQL

ทำความรู้จักตาราง monarchs

SELECT *
FROM monarchs;
| country        | continent   | monarch                 |
|----------------|-------------|-------------------------|
| Brunei         | Asia        | Hassanal Bolkiah        |
| Oman           | Asia        | Haitham bin Tarik       |
| Norway         | Europe      | Harald V                |
| United Kingdom | Europe      | Charles III             |
การ Join ข้อมูลใน SQL

นายกรัฐมนตรีพบพระมหากษัตริย์

SELECT monarch AS leader, country
FROM monarchs
UNION
SELECT prime_minister, country
FROM prime_ministers
ORDER BY country, leader
LIMIT 10;
การ Join ข้อมูลใน SQL

ผลลัพธ์หลัง UNION

|-------------------------|----------------|
| leader                  | country        |
|-------------------------|----------------|
| Anthony Albanese        | Australia      |
| Hassanal Bolkiah        | Brunei         |
| Mostafa Madbouly        | Egypt          |
| Narendra Modi           | India          |
| Christopher Luxon       | New Zealand    |
| Harald V                | Norway         |
| Jonas Gahr Støre        | Norway         |
| Haitham bin Tarik       | Oman           |
| Shehbaz Sharif          | Pakistan       |
| Luís Montenegro         | Portugal       |
|-------------------------|----------------|
การ Join ข้อมูลใน SQL

UNION ALL กับข้อมูลผู้นำ

SELECT monarch AS leader, country
FROM monarchs
UNION ALL
SELECT prime_minister, country
FROM prime_ministers
ORDER BY leader, country
LIMIT 10;
การ Join ข้อมูลใน SQL

ผลลัพธ์ UNION ALL

| leader                  | country        |
|-------------------------|----------------|
| Anthony Albanese        | Australia      |
| Hassanal Bolkiah        | Brunei         |
| Hassanal Bolkiah        | Brunei         |
| Mostafa Madbouly        | Egypt          |
| Narendra Modi           | India          |
| Christopher Luxon       | New Zealand    |
| Harald V                | Norway         |
| Jonas Gahr Støre        | Norway         |
| Haitham bin Tarik       | Oman           |
| Haitham bin Tarik       | Oman           |
การ Join ข้อมูลใน SQL

มาฝึกกันเถอะ!

การ Join ข้อมูลใน SQL

Preparing Video For Download...