SQL JOIN: การรวมข้อมูลจากหลายตารางในฐานข้อมูล

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

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

witsarutt000
PHP Hero Member
PHP Hero Member
โพสต์: 103
ลงทะเบียนเมื่อ: 11/03/2024 9:26 am

SQL JOIN: การรวมข้อมูลจากหลายตารางในฐานข้อมูล

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

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

      SELECT *
      FROM table1
      INNER JOIN table2 ON table1.key = table2.key;
      
    • ใช้เพื่อรวมข้อมูลจากสองตารางโดยเลือกเฉพาะข้อมูลที่มีค่าตรงกันในทั้งสองตารางเท่านั้น
      การใช้ INNER JOIN ทำให้ได้ข้อมูลที่ตรงกันในทั้งสองตารางเท่านั้น แถมยังเอาข้อมูลที่ไม่ตรงกันออกไป
  • LEFT JOIN: การรวมข้อมูลจากตารางซ้ายทั้งหมดและข้อมูลที่ตรงกันในตารางขวา**เอาซ้ายเป็นหลัก
    • โค้ด: เลือกทั้งหมด

      SELECT *
      FROM table1
      LEFT JOIN table2 ON table1.key = table2.key;
      
    • ใช้เพื่อรวมข้อมูลจากตารางซ้ายทั้งหมด และข้อมูลที่มีค่าตรงกันในตารางขวา
      การใช้ LEFT JOIN ทำให้ได้ข้อมูลทั้งหมดจากตารางซ้าย รวมถึงข้อมูลจากตารางขวาที่ตรงกัน แต่ถ้าข้อมูลในตารางซ้ายไม่มีค่าตรงกับตารางขวา ข้อมูลในตารางขวาจะเป็น NULL
  • RIGHT JOIN: การรวมข้อมูลจากตารางขวาทั้งหมดและข้อมูลที่ตรงกันในตารางซ้าย**เอาขวาเป็นหลัก
    • โค้ด: เลือกทั้งหมด

      SELECT *
      FROM table1
      RIGHT JOIN table2 ON table1.key = table2.key;
      
    • ใช้เพื่อรวมข้อมูลจากตารางขวาทั้งหมด และข้อมูลที่มีค่าตรงกันในตารางซ้าย
      การใช้ RIGHT JOIN ทำให้ได้ข้อมูลทั้งหมดจากตารางขวา รวมถึงข้อมูลจากตารางซ้ายที่ตรงกัน แต่ถ้าข้อมูลในตารางขวาไม่มีค่าตรงกับตารางซ้าย ข้อมูลในตารางซ้ายจะเป็น NULL
  • FULL OUTER JOIN: การรวมข้อมูลทั้งหมดจากทั้งสองตาราง**เอาหมดทั้งซ้ายทั้งขวาไม่มีข้อมูลแสดงเป็น Null
    • โค้ด: เลือกทั้งหมด

      SELECT *
      FROM table1
      FULL OUTER JOIN table2 ON table1.key = table2.key;
      
    • ใช้เพื่อรวมข้อมูลทั้งหมดจากทั้งสองตาราง รวมถึงข้อมูลที่มีค่าตรงกันและข้อมูลที่ไม่ตรงกันในทั้งสองตาราง
      การใช้ FULL OUTER JOIN ทำให้ได้ข้อมูลทั้งหมดจากทั้งสองตาราง และถ้าข้อมูลในตารางใดไม่มีค่าตรงกับอีกตาราง ข้อมูลนั้นจะเป็น NULL ทั้งนี้ FULL OUTER JOIN นั้นไม่ได้รับการสนับสนุนในฐานข้อมูลบางประเภท เช่น MySQL จึงต้องใช้วิธีการอื่นเพื่อให้ได้ผลลัพธ์เช่น UNION แทน
  • โดยในโค้ดดังกล่าว:

    table1 และ table2 คือตารางที่ต้องการ JOIN
    key คือคีย์ที่ใช้ในการเชื่อมโยงข้อมูลระหว่างตาราง
    * หมายถึงการเลือกทุกคอลัมน์จากทั้งสองตาราง
    คำสั่งดังกล่าวจะรวมข้อมูลจากตาราง table1 และ table2 โดยมีเงื่อนไขการเชื่อมโยงระหว่างคีย์ key ที่ระบุ ตามประเภทของ JOIN ที่กำหนด

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

อ้างอิง
https://mode.com/sql-tutorial/sql-joins
https://www.w3schools.com/sql/sql_join.asp
https://iamgique.medium.com/การใช้-join-ใน-sql-แบบอ๋องี้นี่เอง-479ce75f33b1
แก้ไขล่าสุดโดย witsarutt000 เมื่อ 15/03/2024 9:09 am, แก้ไขไปแล้ว 1 ครั้ง.
ภาพประจำตัวสมาชิก
Sirayu
PHP Sr. Member
PHP Sr. Member
โพสต์: 98
ลงทะเบียนเมื่อ: 12/06/2019 11:30 am
ติดต่อ:

Re: SQL JOIN: การรวมข้อมูลจากหลายตารางในฐานข้อมูล

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

ขอบคุณสำหรับข้อมูลครับ
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

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

สมาชิกกำลังดูบอร์ดนี้: facebook.com [Crawler] และบุคลทั่วไป 1