ตรงที่ ผลลัพธ์ข้อมูลทั้งสองตารางไม่จำเป็นต้องจับคู่กันได้
*Outer joint จะนำแถวที่ไม่สามารถจับคู่ได้มาแสดงในผลลัพธ์ด้วย
ตัวอย่าง :
- ดึงค่าทั้งหมดจากในตาราง Topic
- และใช้ LEFT Outer joint ข้อมูล ใส่ตารางฝั่งขวา
- ตารางฝั่งซ้ายที่ join คือ member ที่มี t_poster=m_profilename
สุดท้ายใช่ ORDER BY t_id DESC : จัดเรียง t_id จากมาก ไปหา น้อย
และกำหนด LIMIT ตั้งแต่แถวที่ 20 ไปจำนวน 30 แถว
ตัวอย่างขุดมาจาก พันติ๊ป
outer join มันจะเอาที่ไม่ match มาด้วยอ่ะครับ ยกตัวอย่างเช่น
Table A
_____________________
id name
_____________________
01 A
02 B
03 C
Table B
_____________________
name grade
_____________________
A 4.0
B 3.0
B+ 3.5
การ join ปรกติ จะได้แบบนี้ใช่มั๊ยครับ
Table A join B (สังเกตุว่า A และ B มี attribute เหมือนกัน)
_________________________
id name grade
_________________________
01 A 4.0
02 B 3.0
หมายเหตุ วิธีการ join คือ จะเอา Attribute ที่ชื่อว่า name ใน Table A
มาดูในแต่ล่ะค่าว่า มีอะไรตรงกับ Table B มั๊ย ถ้าเท่ากันก็จะนำ Table มา join กัน
จึงจะเห็นว่า name ที่มีค่า C จะไม่ถูกแสดงใน A join B
แต่การ outer join จะเอาค่าที่ไม่ได้ match มาด้วย
ดังนั้น หากทำการ outer join จะได้ค่าดังนี้ครับ
Table A outer join Table B
_________________________
id name grade
_________________________
01 A 4.0
02 B 3.0
03 C
B+ 3.5
ส่วน left กับ right outer join จะเป็นการทำ outer join
แต่ว่า จะเลือกว่าจะเอาค่าที่ไม่ match ฝั่งไหนครับ เช่น
Table A left outer join Table B
_________________________
id name grade
_________________________
01 A 4.0
02 B 3.0
03 C
Table A right outer join Table B
_________________________
id name grade
_________________________
01 A 4.0
02 B 3.0
B+ 3.5
See more at: http://www.atriumtech.com/cgi-bin/hilightcgi?Home=/home/InterWeb2000&File=/home2/searchdata/Forums2/http/www.pantip.com/tech/developer/topic/DD2320619/DD2320619.html#sthash.hvDtDdAf.dpuf
ตัวอย่างขุดมาจาก พันติ๊ป
outer join มันจะเอาที่ไม่ match มาด้วยอ่ะครับ ยกตัวอย่างเช่น
Table A
_____________________
id name
_____________________
01 A
02 B
03 C
Table B
_____________________
name grade
_____________________
A 4.0
B 3.0
B+ 3.5
การ join ปรกติ จะได้แบบนี้ใช่มั๊ยครับ
Table A join B (สังเกตุว่า A และ B มี attribute เหมือนกัน)
_________________________
id name grade
_________________________
01 A 4.0
02 B 3.0
หมายเหตุ วิธีการ join คือ จะเอา Attribute ที่ชื่อว่า name ใน Table A
มาดูในแต่ล่ะค่าว่า มีอะไรตรงกับ Table B มั๊ย ถ้าเท่ากันก็จะนำ Table มา join กัน
จึงจะเห็นว่า name ที่มีค่า C จะไม่ถูกแสดงใน A join B
แต่การ outer join จะเอาค่าที่ไม่ได้ match มาด้วย
ดังนั้น หากทำการ outer join จะได้ค่าดังนี้ครับ
Table A outer join Table B
_________________________
id name grade
_________________________
01 A 4.0
02 B 3.0
03 C
B+ 3.5
ส่วน left กับ right outer join จะเป็นการทำ outer join
แต่ว่า จะเลือกว่าจะเอาค่าที่ไม่ match ฝั่งไหนครับ เช่น
Table A left outer join Table B
_________________________
id name grade
_________________________
01 A 4.0
02 B 3.0
03 C
Table A right outer join Table B
_________________________
id name grade
_________________________
01 A 4.0
02 B 3.0
B+ 3.5
See more at: http://www.atriumtech.com/cgi-bin/hilightcgi?Home=/home/InterWeb2000&File=/home2/searchdata/Forums2/http/www.pantip.com/tech/developer/topic/DD2320619/DD2320619.html#sthash.hvDtDdAf.dpuf