คำสั่ง Join ใน SQL รูปแบบต่างๆ

SQL Knowledge ทั้ง sql มาตรฐาน หลักการออกแบบฐานข้อมูล ความสัมพันธ์ของ ตาราง Mysql , PGSQL, Oracle, MSSQL

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
Buck Kittisak
PHP VIP Members
PHP VIP Members
โพสต์: 9766
ลงทะเบียนเมื่อ: 07/05/2024 9:10 am

คำสั่ง Join ใน SQL รูปแบบต่างๆ

โพสต์ที่ยังไม่ได้อ่าน โดย Buck Kittisak »

ปัจจุบัน การใช้คำสั่ง JOIN ใน SQL เป็นเครื่องมือที่สำคัญในการทำงานกับข้อมูลในฐานข้อมูลเชิงสัมพันธ์ เพื่อรวมข้อมูลจากหลายตารางเข้าด้วยกันตามเงื่อนไขที่กำหนด โดยมีรูปแบบต่างๆ เช่น INNER JOIN, LEFT JOIN, RIGHT JOIN, และ FULL JOIN ที่มีลักษณะแตกต่างกันในการรวมข้อมูล ตลอดจนมีความสามารถในการปรับแต่งการแสดงผลลัพธ์ตามความต้องการของผู้ใช้ การใช้คำสั่ง JOIN ช่วยให้เราสามารถเชื่อมโยงข้อมูลระหว่างตารางได้อย่างมีประสิทธิภาพ และนำมาใช้ในการวิเคราะห์ข้อมูลหรือการสร้างรายงานที่ต้องการข้อมูลจากหลายแหล่งที่เชื่อมโยงกันโดยตรง

คำสั่ง Join ใน SQL สามารถแบ่งออกเป็นรูปแบบต่างๆ ได้ดังนี้:
1.INNER JOIN
  • คำสั่ง INNER JOIN นั้นใช้เพื่อรวมข้อมูลระหว่างตารางตามเงื่อนไขที่กำหนด แถวที่มีค่าที่ตรงกันในทั้งสองตารางจะถูกเลือกแสดงผลเท่านั้น
ตัวอย่าง

โค้ด: เลือกทั้งหมด

SELECT * 
FROM table1
INNER JOIN table2 ON table1.id = table2.id;
ผลลัพธ์
inner join.png
inner join.png (4.88 KiB) Viewed 1377 times
  • ในผลลัพธ์นี้ เราสามารถเห็นได้ว่าข้อมูลจาก table1 และ table2 ได้รวมกันโดยมีการจับคู่ข้อมูลตามค่า id ที่ตรงกัน และแสดงผลลัพธ์ออกมาเป็นตารางที่มีคอลัมน์ของทั้งสองตารางโดยแสดงข้อมูลที่สอดคล้องกันตามเงื่อนไขที่กำหนด

2.LEFT JOIN
  • คำสั่ง LEFT JOIN นั้นใช้เพื่อรวมข้อมูลจากตารางด้านซ้าย (table1) และตารางด้านขวา (table2) โดยแสดงแถวทั้งหมดจากตารางด้านซ้าย และข้อมูลที่มีค่าที่ตรงกันในตารางด้านขวา ถ้าไม่มีข้อมูลในตารางด้านขวา จะแสดงค่า NULL
ตัวอย่าง

โค้ด: เลือกทั้งหมด

SELECT * 
FROM table1
LEFT JOIN table2 ON table1.column = table2.column;
ผลลัพธ์
leftjoin.png
leftjoin.png (4.86 KiB) Viewed 1377 times
  • ในผลลัพธ์นี้ เราสามารถเห็นได้ว่าข้อมูลจาก table1 ถูกรวมกับข้อมูลจาก table2 โดยแสดงข้อมูลทั้งหมดจาก table1 และข้อมูลที่ตรงกับเงื่อนไขใน table2 โดยค่า id ที่ไม่มีใน table2 จะแสดงเป็นค่า NULL ในคอลัมน์ของ table2
3.RIGHT JOIN
  • คำสั่ง RIGHT JOIN นั้นใช้เพื่อรวมข้อมูลจากตารางด้านขวา (table2) และตารางด้านซ้าย (table1) โดยแสดงแถวทั้งหมดจากตารางด้านขวา และข้อมูลที่มีค่าที่ตรงกันในตารางด้านซ้าย ถ้าไม่มีข้อมูลในตารางด้านซ้าย จะแสดงค่า NULL
ตัวอย่าง

โค้ด: เลือกทั้งหมด

SELECT * 
FROM table1
RIGHT JOIN table2 ON table1.column = table2.column;
ผลลัพธ์
right join.png
right join.png (4.6 KiB) Viewed 1377 times
  • ในผลลัพธ์นี้ เราสามารถเห็นได้ว่าข้อมูลจาก table2 ถูกรวมกับข้อมูลจาก table1 โดยแสดงข้อมูลทั้งหมดจาก table2 และข้อมูลที่ตรงกับเงื่อนไขใน table1 โดยค่า id ที่ไม่มีใน table1 จะแสดงเป็นค่า NULL ในคอลัมน์ของ table1
4.FULL JOIN
  • คำสั่ง FULL JOIN นั้นใช้เพื่อรวมข้อมูลจากทั้งสองตาราง โดยแสดงแถวทั้งหมดจากทั้งสองตาราง และจะแสดงค่า NULL ในกรณีที่ไม่มีข้อมูลที่ตรงกัน
ตัวอย่าง

โค้ด: เลือกทั้งหมด

SELECT * 
FROM table1
FULL JOIN table2 ON table1.column = table2.column;
ผลลัพธ์
full join.png
full join.png (5.86 KiB) Viewed 1377 times
  • ผลลัพธ์ของคำสั่ง SQL นี้จะเป็นการรวมข้อมูลทั้งหมดจาก table1 และ table2 โดยแสดงข้อมูลทั้งหมดจากทั้งสองตาราง รวมถึงข้อมูลที่ไม่ตรงกันในทั้งสองตารางด้วย และจะแสดงค่า NULL ในส่วนที่ไม่มีข้อมูลในตารางที่มีข้อมูลในอีกตาราง หรือไม่มีข้อมูลในทั้งสองตารางในส่วนนั้นๆ ของผลลัพธ์ที่รวมกัน
การใช้คำสั่ง JOIN ใน SQL ต้องการความเข้าใจในโครงสร้างข้อมูลและความสัมพันธ์ระหว่างตารางในฐานข้อมูล เพื่อกำหนดเงื่อนไขในการรวมข้อมูลที่เหมาะสม เช่น การใช้ INNER JOIN เพื่อรวมข้อมูลที่มีค่าที่ตรงกันในทั้งสองตาราง หรือการใช้ LEFT JOIN เพื่อแสดงข้อมูลทั้งหมดจากตารางด้านซ้าย และข้อมูลที่มีค่าที่ตรงกันในตารางด้านขวา ซึ่งการเลือกใช้คำสั่ง JOIN ที่เหมาะสมจะช่วยให้การเขียนคำสั่ง SQL เป็นไปอย่างราบรื่นและมีประสิทธิภาพและยังมีคำสั่งอื่นๆในภาษา SQL ให้เราเลือกใช้ตามความเหมาะสมกับโปรเจคของเราได้อีกหลายคำสั่ง

อ้างอิง
https://www.mindphp.com/คู่มือ/73-คืออะ ... ออะไร.html
https://www.mindphp.com/บทเรียนออนไลน์/สอน-sql.html
viewtopic.php?t=51874
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 4