
Last Updated (Saturday, 08 August 2009 16:55) Saturday, 08 August 2009 15:35
Natural Join ก็คือ Equi-Join ที่ไม่ได้ระบุว่าจะเอา column อะไรมาเป็น ตัวเท่ากับ ระหว่างกัน ซึ่ง Oracle จะไปดูว่า column ไหน ที่เป็น column ชื่อเหมือนกัน ของตารางที่จะมา join มันก็จะจับ column นั้นแหละ มาเป็นตัวเท่ากับ ในการ join เช่น
SELECT e.ename,d.dname
FROM emp e NATURAL JOIN dept d

จากตัวอย่างข้างบน ผลจะเหมือน equi-join เพราะ Oracle จะจับเอา column ชื่อ deptno ซึ่งมีอยู่ทั้ง 2 ตาราง มา match กัน
เป็นการ join ที่ขยายมาจาก inner join โดยจะสามารถ แสดงแถวที่ column ในเงื่อนไขการ join เป็น NULL สามารถแบ่ง outer join ออกเป็นประเภทย่อยๆ ตามการแสดงแถวที่ NULL ได้ คือ จะแสดงแถวในตารางที่อยู่ทางซ้ายมือ ของเงื่อนไข WHERE ออกมาทั้งหมด แม้ว่าตารางทางขวามือของ WHERE จะไม่ match กับเงื่อนไขก็ตาม ตารางทางขวามือ ก็จะ return ค่าเป็น NULL ออกมาให้
SELECT d.department_id,e.last_name
FROM departments d , employees e
WHERE d.department_id = e.department_id(+)
ORDER by d.department_id ;

จะแสดงแถวในตาราง ที่อยู่ทางขวามือ ของเงื่อนไข WHERE ออกมาทั้งหมด แม้ว่าตารางทางซ้ายมือของ WHERE จะไม่ match กับเงื่อนไข แต่ตารางทางซ้ายมือก็จะ return ค่าเป็น NULL ออกมาให้
SELECT d.department_id,e.last_name
FROM departments d , employees e
WHERE d.department_id(+) = e.department_id
ORDER by d.department_id ;

จะแสดงแถวในตารางที่ อยู่ทั้งทางซ้ายและขวา ของเงื่อนไข WHERE ออกมาทั้งหมด ตารางไหนไม่ match กับเงื่อนไข ก็จะ return ค่าออกมาเป็น NULL
SELECT d.department_id,e.last_name
FROM departments d FULL OUTER JOIN employees e
ON d.department_id = e.department_id
ORDER by d.department_id ;
หมายเหตุ การใช้เครื่องหมาย (+) ตามหลังตารางทีเป็นฟากส่วนที่หายไปนั้น (ฟากที่ไม่ใช่ outer join )เป็น syntax แบบเก่า คลาสสิค ตามมาตรฐาน SQL ANISI/86 ซึ่งจะยังไม่มี FULL OUTER JOIN แต่ syntax แบบใหม่ตามมาตรฐาน SQL ANSI/92 จะมี FULL OUTER JOIN แล้ว และรูปแบบ syntax จะไม่ใช้ (+)

oracle database table oracle database data using pl/sql index oracle tutorial password oracle thailand oracle training thailand database administrator oracle thai oracle dba oracle training oracle consulting oracle consultance thai oracle consultance oracle consulting thailand mysql tuning indexes statistics join column migration rman tables production


