PostgreSQL ประเภทการต่อกระดูก: ต่อด้านใน ต่อด้านนอก ต่อด้านซ้าย ต่อด้านขวา
⚡ สรุปอย่างชาญฉลาด
PostgreSQL การเชื่อมตาราง (Join) ดึงและรวมแถวจากสองตารางขึ้นไปโดยใช้คีย์ร่วมกัน ซึ่งรวมถึงการเชื่อมตารางภายใน เช่น theta, EQUI และ natural รวมถึงการเชื่อมตารางภายนอกที่ครอบคลุมผลลัพธ์ด้านซ้าย ด้านขวา และผลลัพธ์ทั้งหมด

เข้าร่วมคืออะไร PostgreSQL?
PostgreSQL ร่วม คำสั่ง JOIN ใช้สำหรับดึงข้อมูลจากหลายตาราง โดยการรวมคำสั่ง SELECT และ JOIN เข้าด้วยกันในคำสั่งเดียว โดยเพิ่มเงื่อนไข JOIN เข้าไปในคำสั่ง และจะดึงข้อมูลทุกแถวที่ตรงตามเงื่อนไขนั้น ค่าจากตารางต่างๆ จะถูกรวมเข้าด้วยกันโดยใช้คอลัมน์ที่เหมือนกัน โดยส่วนใหญ่แล้วคอลัมน์ที่เหมือนกันจะเป็นคีย์หลักในตารางแรกและคีย์รองในตารางที่สอง
PostgreSQL เข้าร่วมประเภท
การเข้าร่วมมีสองประเภท PostgreSQL:
- รวมภายใน
- การรวมภายนอก
PostgreSQL การเข้าร่วมภายใน
Inner Joins มี 3 ประเภท PostgreSQL:
- ธีต้าเข้าร่วม
- เข้าร่วมอย่างเป็นธรรมชาติ
- EQUI เข้าร่วม
ธีต้าเข้าร่วม
การเข้าร่วมแบบธีตาช่วยให้สามารถเข้าร่วมตารางสองตารางโดยอิงตามเงื่อนไขที่แสดงโดยธีตา การเข้าร่วมแบบธีตาสามารถทำงานร่วมกับตัวดำเนินการเปรียบเทียบทั้งหมดได้ ในกรณีส่วนใหญ่ การเข้าร่วมแบบธีตาจะเรียกว่าการเข้าร่วมภายใน
Theta join เป็นประเภทพื้นฐานที่สุดของ JOIN มันจะส่งคืนแถวทั้งหมดจากตารางที่ตรงตามเงื่อนไข JOIN
ไวยากรณ์:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
พิจารณาตารางฐานข้อมูลสาธิตต่อไปนี้:
หนังสือ:
ราคา:
เราต้องการดูชื่อหนังสือแต่ละเล่มและราคาที่เกี่ยวข้อง เราสามารถรันคำสั่งต่อไปนี้:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
สิ่งนี้จะส่งคืนสิ่งต่อไปนี้:
มีเพียง 3 แถวเท่านั้นที่ตรงตามเงื่อนไขการเข้าร่วม
EQUI เข้าร่วม
การเข้าร่วม EQUI ช่วยให้เราสามารถรวมสองตารางเข้าด้วยกันโดยอิงตามความสัมพันธ์ของคีย์หลัก/คีย์ต่างประเทศ ตัวอย่างเช่น:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
สิ่งนี้จะส่งคืนสิ่งต่อไปนี้:
มีการส่งคืนเรกคอร์ดจากทั้งสองตารางโดยยึดตามคอลัมน์ทั่วไป นั่นคือคอลัมน์ id
เข้าร่วมตามธรรมชาติ
การเข้าร่วมประเภทนี้ทำให้เรามีวิธีอื่นในการเขียนการเข้าร่วม EQUI เราสามารถปรับปรุงตัวอย่างก่อนหน้าของเราได้โดยเพิ่มคีย์เวิร์ด NATURAL ดังที่แสดงด้านล่าง:
SELECT * FROM Book NATURAL JOIN Price;
สิ่งนี้จะส่งคืนสิ่งต่อไปนี้:
ส่งคืนคอลัมน์ ID เพียงคอลัมน์เดียวเท่านั้น NATURAL JOIN สามารถสังเกตได้ว่าคอลัมน์ id เป็นเรื่องธรรมดาในทั้งสองตาราง มีเพียงคนเดียวเท่านั้นที่ได้คืน
PostgreSQL การเข้าร่วมภายนอก
Outer Joins มี 3 ประเภท PostgreSQL:
- เข้าร่วมด้านนอกซ้าย
- เข้าร่วมด้านนอกขวา
- เข้าร่วมภายนอกเต็มรูปแบบ
PostgreSQL เข้าร่วมด้านนอกซ้าย
LEFT OUTER JOIN จะส่งกลับแถวทั้งหมดในตารางทางด้านซ้ายมือและเฉพาะแถวในตารางด้านขวามือที่ตรงตามเงื่อนไขการรวมแล้ว
ไวยากรณ์:
SELECT columns FROM table-1 LEFT OUTER JOIN table-2 ON table-1.column = table-2.column;
เราจำเป็นต้องดูชื่อหนังสือแต่ละเล่มและราคาที่เกี่ยวข้อง เราสามารถรันคำสั่งต่อไปนี้:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
สิ่งนี้ส่งคืนสิ่งต่อไปนี้:
ส่งคืนทั้ง 4 แถวในตาราง Book แล้ว มีเพียง 3 แถวจากตารางราคาที่ตรงตามเงื่อนไขการรวม ดังนั้นพวกเขาจึงถูกส่งคืน หนังสือเล่มสุดท้ายไม่มีมูลค่าราคาที่สอดคล้องกัน
PostgreSQL เข้าร่วมด้านนอกขวา
RIGHT OUTER JOIN ส่งคืนแถวทั้งหมดในตารางทางด้านขวาและแถวในตารางทางด้านซ้ายมือตรงตามเงื่อนไขการรวม
ไวยากรณ์:
SELECT columns FROM table-1 RIGHT OUTER JOIN table-2 ON table-1.column = table-2.column;
ตัวอย่างเช่น:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
สิ่งนี้ส่งคืนสิ่งต่อไปนี้:
ข้อมูลทุกแถวในตาราง Price ได้ถูกส่งคืนแล้ว ส่วนข้อมูลในตาราง Book ที่ตรงตามเงื่อนไขการเชื่อมต่อเท่านั้นที่ถูกส่งคืน แถวที่ 3 ไม่มีค่าสำหรับชื่อ เนื่องจากไม่พบข้อมูลที่ตรงกัน
เข้าร่วมด้านนอกแบบเต็ม PostgreSQL
JOIN ประเภทนี้จะส่งกลับแถวทั้งหมดในตารางทางด้านซ้ายและแถวทั้งหมดในตารางทางด้านขวามือด้วยค่าว่างโดยที่เงื่อนไขการรวมไม่เป็นที่พอใจ
ไวยากรณ์:
SELECT columns FROM table-1 FULL OUTER JOIN table-2 ON table-1.column = table-2.column;
ตัวอย่างเช่น:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
สิ่งนี้ส่งคืนสิ่งต่อไปนี้:
แถวทั้งหมดจากตารางทั้งหมดถูกส่งกลับแล้ว โดยมีค่าว่างซึ่งไม่พบรายการที่ตรงกัน
การใช้งาน pgAdmin
สามารถดำเนินการตามขั้นตอนข้างต้นได้ใน pgAdmin ดังนี้ ส่วนต่อไปนี้จะอธิบายแต่ละประเภทของการเชื่อมต่อทีละขั้นตอน
pgAdmin เข้าร่วมภายใน
ขั้นตอนด้านล่างแสดงวิธีการเรียกใช้การเชื่อมต่อแบบ Inner Join แต่ละแบบใน pgAdmin
วิธีใช้ Theta เข้าร่วม PostgreSQL โดยใช้ pgAdmin
ด้านล่างนี้คือขั้นตอนการใช้งาน Theta Join PostgreSQL ใช้ pgAdmin:
ขั้นตอนที่ 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
เปิด pgAdmin และเข้าสู่ระบบโดยใช้ข้อมูลประจำตัวของคุณ
ขั้นตอนที่ 2) สร้างฐานข้อมูลสาธิต
- จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอนที่ 3) พิมพ์แบบสอบถาม
พิมพ์แบบสอบถามด้านล่างในตัวแก้ไขแบบสอบถาม:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
ขั้นตอนที่ 4) ดำเนินการแบบสอบถาม
คลิกปุ่มดำเนินการ
ควรส่งคืนสิ่งต่อไปนี้:
EQUI เข้าร่วม
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2)
- จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ควรส่งคืนสิ่งต่อไปนี้:
เข้าร่วมตามธรรมชาติ
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2)
- จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:
SELECT * FROM Book NATURAL JOIN Price;
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ควรส่งคืนสิ่งต่อไปนี้:
pgAdmin เข้าร่วมภายในอย่างง่าย
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2)
- จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ควรส่งคืนสิ่งต่อไปนี้:
pgAdmin เข้าร่วมภายนอก
ถัดไป ให้รันคำสั่ง outer join ทั้งสามแบบใน pgAdmin โดยทำตามขั้นตอนด้านล่าง
เข้าร่วมด้านนอกซ้าย
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2)
- จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ควรส่งคืนสิ่งต่อไปนี้:
เข้าร่วมด้านนอกขวา
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2)
- จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ควรส่งคืนสิ่งต่อไปนี้:
เข้าร่วมภายนอกเต็มรูปแบบ
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2)
- จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ควรส่งคืนสิ่งต่อไปนี้:
ดาวน์โหลดฐานข้อมูลที่ใช้ในบทช่วยสอนนี้





























