Lesson – 42 : Joining of Tables

เชกเซ‡เชŸเชพเชฌเซ‡เชธ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชธเชฟเชธเซเชŸเชฎ (DBMS) เชฎเชพเช‚ เช†เชชเชฃเซ‡ เช˜เชฃเซ€ เชตเชพเชฐ เชเช•เชฅเซ€ เชตเชงเซ เชŸเซ‡เชฌเชฒเซเชธเชฎเชพเช‚ เชกเซ‡เชŸเชพ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเซ€เช เช›เซ€เช. เชชเชฐเช‚เชคเซ เชœเซเชฏเชพเชฐเซ‡ เช†เชชเชฃเชจเซ‡ เชเชตเซ€ เชฎเชพเชนเชฟเชคเซ€ เชœเซ‹เชˆเช เชœเซ‡เชฎเชพเช‚ เชฌเซ‡ เช•เซ‡ เชตเชงเซ เชŸเซ‡เชฌเชฒเซเชธเชจเชพ เชกเซ‡เชŸเชพเชจเซ‹ เชธเช‚เชฌเช‚เชง เชนเซ‹เชฏ, เชคเซเชฏเชพเชฐเซ‡ JOINING OF TABLESเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเซ‡ เช›เซ‡. เชŸเซ‡เชฌเชฒเซเชธเชจเซเช‚ เชœเซ‹เชกเชพเชฃ เชเชŸเชฒเซ‡ เชฌเซ‡ เช•เซ‡ เชตเชงเซ เชŸเซ‡เชฌเชฒเซเชธเชจเชพ เชกเซ‡เชŸเชพเชจเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เช•เซ€ (Common Key) เชฆเซเชตเชพเชฐเชพ เชเช• เชธเชพเชฅเซ‡ เชฎเซ‡เชณเชตเซ€, เชเช• เชœ เชฐเชฟเชเชฒเซเชŸ เชคเชฐเซ€เช•เซ‡ เชฐเชœเซ‚ เช•เชฐเชตเซเช‚.


๐Ÿ”น JOIN เชถเซเช‚ เช›เซ‡?

JOIN เช SQL เชฎเชพเช‚ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชคเซ‹ เชเช• เชชเซเชฐเซ‹เชธเซ‡เชธ เช›เซ‡, เชœเซ‡ เชฌเซ‡ เชŸเซ‡เชฌเชฒเซเชธ เชตเชšเซเชšเซ‡เชจเชพ เชธเช‚เชฌเช‚เชง (Relationship) เชจเซ‡ เช†เชงเชพเชฐเซ‡ เชกเซ‡เชŸเชพเชจเซ‡ เชœเซ‹เชกเซ‡ เช›เซ‡. JOIN เชฆเซเชตเชพเชฐเชพ เช†เชชเชฃเซ‡ เชตเชฟเชตเชฟเชง เชŸเซ‡เชฌเชฒเซเชธเชฎเชพเช‚ เชฐเชนเซ‡เชฒเชพ เชœเชฐเซ‚เชฐเซ€ เชกเซ‡เชŸเชพเชจเซ‡ เชเช• เชธเชพเชฅเซ‡ เชฎเซ‡เชณเชตเซ€ เชถเช•เซ€เช เช›เซ€เช.

JOINเชจเซ‹ เชฎเซเช–เซเชฏ เช‰เชชเชฏเซ‹เช— เชจเซ€เชšเซ‡ เชฎเซเชœเชฌ เช›เซ‡:

  • เชกเซ‡เชŸเชพเชจเซเช‚ เชธเช‚เชฏเซ‹เชœเชจ (Combination)

  • เชธเช‚เชฌเช‚เชงเชฟเชค เชฎเชพเชนเชฟเชคเซ€ เชฎเซ‡เชณเชตเชตเซ€ (Related Data Retrieval)

  • เชœเชŸเชฟเชฒ เช•เซเชตเซ‡เชฐเซ€เชจเซ‡ เชธเชฐเชณ เชฌเชจเชพเชตเชตเซ€


โญ JOINเชจเชพ เชฎเซเช–เซเชฏ เชชเซเชฐเช•เชพเชฐเซ‹

JOIN เช˜เชฃเชพ เชชเซเชฐเช•เชพเชฐเชจเชพ เชนเซ‹เชฏ เช›เซ‡, เชชเชฐเช‚เชคเซ SQL เชฎเชพเช‚ เชฎเซเช–เซเชฏเชคเซเชตเซ‡ 4 เชชเซเชฐเช•เชพเชฐ เชธเซŒเชฅเซ€ เชตเชงเซ เช‰เชชเชฏเซ‹เช—เซ€ เช›เซ‡:


๐Ÿ”ต 1. INNER JOIN

INNER JOIN เชฌเซ‡ เชŸเซ‡เชฌเชฒเซเชธเชฎเชพเช‚ เชซเช•เซเชค เชคเซ‡ เชœ เชฐเซ‡เช•เซ‹เชฐเซเชก เชฌเชคเชพเชตเซ‡ เช›เซ‡ เชœเซ‡ เชฌเช‚เชจเซ‡ เชŸเซ‡เชฌเชฒเซเชธเชฎเชพเช‚ เชธเชพเชฎเชพเชจเซเชฏ เชนเซ‹เชฏ.

เช‰เชฆเชพเชนเชฐเชฃ:
SELECT students.name, course.course_name
FROM students
INNER JOIN course
ON students.course_id = course.id;

๐Ÿ“Œ เชฎเชพเชคเซเชฐ เชฎเซ‡เชšเชฟเช‚เช— (Matching) เชฐเซ‡เช•เซ‹เชฐเซเชกเซเชธ เชœ เชฎเชณเชถเซ‡.


๐Ÿ”ต 2. LEFT JOIN (LEFT OUTER JOIN)

LEFT JOINเชฎเชพเช‚ เชกเชพเชฌเซ€ เชฌเชพเชœเซเชจเชพ (LEFT TABLE) เชคเชฎเชพเชฎ เชฐเซ‡เช•เซ‹เชฐเซเชกเซเชธ เชฎเชณเซ‡ เช›เซ‡ เช…เชจเซ‡ เชœเชฎเชฃเซ€ เชฌเชพเชœเซเชจเชพ เชŸเซ‡เชฌเชฒเชฎเชพเช‚ เชฎเซ‡เชšเชฟเช‚เช— เชจ เชนเซ‹เชฏ เชคเซ‹ NULL เชฌเชคเชพเชตเซ‡ เช›เซ‡.

เช‰เชฆเชพเชนเชฐเชฃ:
SELECT students.name, course.course_name
FROM students
LEFT JOIN course
ON students.course_id = course.id;

๐Ÿ“Œ Left tableเชจเชพ เชฌเชงเชพ เชฐเซ‡เช•เซ‹เชฐเซเชกเซเชธ + Right Tableเชจเชพ เชฎเซ‡เชณ เช–เชพเชคเชพ เชฐเซ‡เช•เซ‹เชฐเซเชกเซเชธ.


๐Ÿ”ต 3. RIGHT JOIN (RIGHT OUTER JOIN)

RIGHT JOIN LEFT JOINเชจเซ‹ เชตเชฟเชชเชฐเซ€เชค เช›เซ‡. เชคเซ‡เชฎเชพเช‚ เชœเชฎเชฃเซ€ เชฌเชพเชœเซเชจเชพ (RIGHT TABLE) เชคเชฎเชพเชฎ เชฐเซ‡เช•เซ‹เชฐเซเชกเซเชธ เชฌเชคเชพเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ LEFT TABLEเชฎเชพเช‚ เชฎเซ‡เชš เชจ เชนเซ‹เชฏ เชคเซ‹ NULL เช†เชชเซ‡ เช›เซ‡.


๐Ÿ”ต 4. FULL JOIN (FULL OUTER JOIN)

FULL JOIN เชฌเช‚เชจเซ‡ เชŸเซ‡เชฌเชฒเซเชธเชจเชพ เชคเชฎเชพเชฎ เชฐเซ‡เช•เซ‹เชฐเซเชกเซเชธ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡. เชฎเซ‡เชšเชฟเช‚เช— เชนเซ‹เชฏ เชคเซ‹ เชฌเช‚เชจเซ‡เชจเชพ, เช…เชจเซ‡ เชฎเซ‡เชšเชฟเช‚เช— เชจ เชนเซ‹เชฏ เชคเซ‹ NULL เชฎเซ‚เชฒเซเชฏ เชธเชพเชฅเซ‡.

๐Ÿ“Œ เชฌเช‚เชจเซ‡ เชฆเชฟเชถเชพเชฎเชพเช‚ เชธเช‚เชชเซ‚เชฐเซเชฃ เชกเซ‡เชŸเชพ เชฎเซ‡เชณเชตเซ‡ เช›เซ‡.


๐Ÿ“ JOIN เช•เซ‡เชฎ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡?

JOIN เชฆเซเชตเชพเชฐเชพ เช†เชชเชฃเซ‡ เชจเซ€เชšเซ‡เชจเชพ เชซเชพเชฏเชฆเชพเช“ เชฎเซ‡เชณเชตเซ€ เชถเช•เซ€เช เช›เซ€เช:

  • เชกเซ‡เชŸเชพ เชฐเซ€เชกเชจเซเชกเชจเซเชธเซ€ เช˜เชŸเชพเชกเซ‡ เช›เซ‡

  • เชฐเชฟเชฒเซ‡เชถเชจเชถเชฟเชช เช†เชงเชพเชฐเชฟเชค เชฎเชพเชนเชฟเชคเซ€ เชธเชฐเชณเชคเชพเชฅเซ€ เชฎเชณเซ‡ เช›เซ‡

  • เชฌเชนเซ เชŸเซ‡เชฌเชฒเซเชธ เชธเชพเชฅเซ‡ เช•เชพเชฎ เชธเชฐเชณ เชฌเชจเซ‡ เช›เซ‡

  • เช•เซ‹เชฎเซเชชเชฒเซ‡เช•เซเชธ เชฐเชฟเชชเซ‹เชฐเซเชŸเซเชธ เชคเซˆเชฏเชพเชฐ เช•เชฐเซ€ เชถเช•เชพเชฏ


๐Ÿ”ง JOIN เช•เซเชฏเชพเชฐเซ‡ เชตเชชเชฐเชพเชฏ เช›เซ‡?

JOIN เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชจเซ€เชšเซ‡เชจเซ€ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚ เช‰เชชเชฏเซ‹เช— เชฅเชพเชฏ เช›เซ‡:

  • Students เช…เชจเซ‡ Courses เชŸเซ‡เชฌเชฒเชจเซ‡ เชœเซ‹เชกเชตเชพ

  • Orders เช…เชจเซ‡ Customers เชŸเซ‡เชฌเชฒเชจเซ‡ เชœเซ‹เชกเชตเชพ

  • Employees เช…เชจเซ‡ Departments เชŸเซ‡เชฌเชฒเชจเซ‡ เชœเซ‹เชกเชตเชพ

  • Product เช…เชจเซ‡ Category เชŸเซ‡เชฌเชฒเชจเซ‡ เชœเซ‹เชกเชตเชพ

เชฌเซ‡ เช…เชฅเชตเชพ เชตเชงเซ เชŸเซ‡เชฌเชฒเซเชธเชฎเชพเช‚ เชธเช‚เชฌเช‚เชง เชนเซ‹เชฏ เชคเซเชฏเชพเชฐเซ‡ JOIN เชฌเชนเซ เชœเชฐเซ‚เชฐเซ€ เชฌเชจเซ‡ เช›เซ‡.


Joining of Tables เช DBMS เช…เชจเซ‡ SQL เชจเซ‹ เชเช• เช…เช—เชคเซเชฏเชจเซ‹ เช–เซเชฏเชพเชฒ เช›เซ‡, เชœเซ‡ เช†เชชเชฃเชจเซ‡ เช…เชจเซ‡เช• เชŸเซ‡เชฌเชฒเซเชธเชจเชพ เชฐเซ‡เช•เซ‹เชฐเซเชกเซเชธเชจเซ‡ เชเช• เชธเชพเชฅเซ‡ เชœเซ‹เชกเซ€เชจเซ‡ เชเช• เชœ เชฐเชฟเชเชฒเซเชŸ เช†เชชเซ‡ เช›เซ‡. INNER JOINเชฅเซ€ เชฒเชˆ FULL JOIN เชธเซเชงเซ€เชจเชพ เชฆเชฐเซ‡เช• เชชเซเชฐเช•เชพเชฐ เชกเซ‡เชŸเชพเชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชค เชฎเซเชœเชฌ เช‰เชชเชฏเซ‹เช—เซ€ เชฌเชจเซ‡ เช›เซ‡. JOINเชจเซ‹ เชฏเซ‹เช—เซเชฏ เช‰เชชเชฏเซ‹เช— เชคเชฎเชพเชฐเชพ เชกเซ‡เชŸเชพเชฌเซ‡เชธ เช•เซเชตเซ‡เชฐเซ€เชจเซ‡ เชตเชงเซ เชถเช•เซเชคเชฟเชถเชพเชณเซ€ เช…เชจเซ‡ เช…เชธเชฐเช•เชพเชฐเช• เชฌเชจเชพเชตเซ‡ เช›เซ‡.