JOIN TABLE แบบ Left Outer Join

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

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

M013
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 829
ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm

JOIN TABLE แบบ Left Outer Join

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

JOIN TABLE แบบ Left Outer Join
เป็นการ Join Table โดยยึดตารางทางซ้ายมือเป็นหลักดังภาพที่ 1.1
ภาพที่ 1.1 ลักษณะการ Join Table แบบ Left Outer Join
ภาพที่ 1.1 ลักษณะการ Join Table แบบ Left Outer Join
Left_outer_join.jpg (31.9 KiB) Viewed 4500 times
รูปแบบการใช้งาน

โค้ด: เลือกทั้งหมด

SELECT ชื่อคอลัมน์1, ชื่อคอลัมน์2, ชื่อคอลัมน์3, ...
FROM ชื่อตาราง1
LEFT OUTER JOIN ชื่อตาราง2
ON ชื่อตาราง1.ชื่อคอลัมน์=ชื่อตาราง2.ชื่อคอลัมน์;
ตัวอย่างการใช้งาน
ภาพที่ 1.2 ตารางข้อมูลลูกค้า เเละ ตารางข้อมูลการสั่งสินค้า
ภาพที่ 1.2 ตารางข้อมูลลูกค้า เเละ ตารางข้อมูลการสั่งสินค้า
table_cusANDorde_norelation.jpg (151.18 KiB) Viewed 4493 times
>>ต้องการทราบชื่อลูกค้า เละ รหัสการสั่งซื้อสินค้า

โค้ด: เลือกทั้งหมด

SELECT Customers.cus_name, Order_product.order_id
FROM Customer
LEFT OUTER JOIN Order_product
ON Customer.cus_id=Order_product.cus_id
ORDER BY Customers.cus_name;
การเเสดงผล
ภาพที่ 1.3 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 1.3 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
output_Left_outer_join.jpg (40.85 KiB) Viewed 4500 times
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: JOIN TABLE แบบ Left Outer Join

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

:like: :-D
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41249
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: JOIN TABLE แบบ Left Outer Join

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

ตัวอย่างการเขียนคำสั่ง Left Join ใน Mysql
ยกตัวอย่าง ความสัมพันธ์ของตาราง member กับ member_regis_ip
เป็นแบบ One2One
สองคำสั่งนี้จะได้ค่าต่างกัน ตามข้อมูล
เช่นถ้าเขียนแบบแรก จะยึดตาราง member_regis_ip เป็นหลัก ถ้าไม่มี mem_id ในตาราง member_regis_ip เวลารันคำสั่งก็จะไม่ได้ข้อมูลออกมา (0 record)

แบบที่สอง จะยึดตาราง member เป็นหลัก หมายความว่าถ้าไม่มีข้อมูลในตาราง member ผลที่ได้ก็จะไม่ได้ข้อมูลออกมา แต่ถ้ามี record ในตาราง member แต่ไม่มี record ในตาราง member_regis_ip ผลจากการ query ก็ยังได้ record ออกมาแสดง แต่จะขาด Field ip ไป (ได้ชื่อ field แต่ค่าเป็นค่าว่าง)

โค้ด: เลือกทั้งหมด

            $query = "SELECT m.*,  c.ip 
                             FROM member_regis_ip c
                                LEFT JOIN  member AS m  ON c.mem_id=m.mem_id 
                            WHERE c.mem_id=" .$mem_id ." ";
                            
            $query = "SELECT m.*,  c.ip 
                             FROM member m
                                LEFT JOIN  member_regis_ip AS c  ON c.mem_id=m.mem_id 
                            WHERE m.mem_id=" .$mem_id ." ";                            
 
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

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

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 72