1 / 20

SQL ( Structured Query Language )

SQL ( Structured Query Language ). Part 2. Multi-Table Queries (JOIN). INNER JOIN OUTER JOIN LEFT OUTER JOIN RIGHT OUTER JION FULL OUTER JION. INNER JOIN. เป็นการ join ข้อมูลจาก 2 ตารางขึ้นไปโดยระบุคอลัมน์ที่มี ข้อมูลตรงกัน ผลลัพธ์ที่ได้จะแสดงเฉพาะแถวที่มีข้อมูลตรงกัน

clio
Download Presentation

SQL ( Structured Query Language )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SQL(Structured Query Language) Part 2

  2. Multi-Table Queries (JOIN) • INNER JOIN • OUTER JOIN • LEFT OUTER JOIN • RIGHT OUTER JION • FULL OUTER JION

  3. INNER JOIN เป็นการ join ข้อมูลจาก 2 ตารางขึ้นไปโดยระบุคอลัมน์ที่มี ข้อมูลตรงกัน ผลลัพธ์ที่ได้จะแสดงเฉพาะแถวที่มีข้อมูลตรงกัน สำหรับ INNER JOIN นี้หรืออาจเรียกย่อๆ ว่า JOIN ก็ได้

  4. OUTER JOIN เป็นการ join ข้อมูลจาก 2 ตารางขึ้นไป ขณะที่ INNER JOIN ให้ผลเฉพาะแถวที่มีข้อมูลตรงกันในคอลัมน์ที่ระบุแต่ OUTER JOIN จะนำข้อมูลในตารางทั้งสองออกมาแสดงโดยไม่สนใจว่าจะ มีข้อมูลที่ตรงกันหรือไม่ตรงกัน ซึ่งถ้าหากแถวใดมีข้อมูลที่ไม่ตรง กัน ก็จะแสดงข้อมูลในคอลัมน์นั้นเป็น NULL ไป

  5. LEFT OUTER JOIN ( *=) เป็นการ join ข้อมูลจาก 2 ตารางขึ้นไป โดยจะถือเอาตาราง ทางซ้ายของคำว่า LEFT OUTER JOIN เป็นหลัก โดยข้อมูลทุกๆ แถวจากตารางด้านซ้ายจะถูกนำแสดง ไม่ว่าจะมีข้อมูลตรงกันกับ ตารางด้านขวาหรือไม่ก็ตาม ถ้าไม่มีข้อมูลในตารางด้านขวาที่ ตรงกันก็จะแสดงค่าเป็น NULL

  6. RIGHT OUTER JOIN ( =*) เป็นการ join ข้อมูลจาก 2 ตารางขึ้นไป โดยจะถือเอาตาราง ทางขวาของคำว่า RIGHT OUTER JOIN เป็นหลัก โดยข้อมูล ทุกๆแถวจากตารางด้านขวาจะถูกนำแสดง ไม่ว่าจะมีข้อมูลตรงกัน กับตารางด้านซ้ายหรือไม่ก็ตาม ถ้าไม่มีข้อมูลในตารางด้านซ้าย ที่ตรงกันก็จะแสดงค่าเป็น NULL

  7. FULL OUTER JOIN เป็นการ join ข้อมูลจาก 2 ตารางขึ้นไป โดยแสดงข้อมูลทุกแถว จากตารางที่นำมา join โดยจะบรรจุค่า null ลงไปเมื่อไม่สามารถ จับคู่ระหว่างแอตตริบิวต์ได้

  8. การใช้งานJOIN SELECT{ column_name } [,...n] FROM { table_name } [, ...n] [ [ INNER ] | { LEFT | RIGHT | FULL} [ OUTER ] ] JOIN { table_name } ON { search_conditions}

  9. แบบที่ 1 : ANSI SQL-92 Syntax SELECT b.*, p.* FROM Branch1 AS b INNER JOIN PropertyForRent1 AS p ON b.bCity = p.pCity; แบบที่ 2 : Transact - SQL SELECT b.*, p.* FROM Branch1 AS b, PropertyForRent1 AS p WHERE b.bCity = p.pCity; Example: INNER JOIN

  10. Example: INNER JOIN

  11. Example: INNER JOIN

  12. แบบที่ 1 : ANSI SQL-92 Syntax SELECT b.*, p.* FROM Branch1 AS b LEFT JOIN PropertyForRent1 AS p ON b.bCity = p.pCity; แบบที่ 2 : Transact - SQL SELECT b.*, p.* FROM Branch1 AS b, PropertyForRent1 AS p WHERE b.bCity *= p.pCity; Example: LEFT OUTER JOIN

  13. Example: LEFT OUTER JOIN

  14. แบบที่ 1 : ANSI SQL-92 Syntax SELECT b.*, p.* FROM Branch1 AS b RIGHT JOIN PropertyForRent1 AS p ON b.bCity = p.pCity; แบบที่ 2 : Transact - SQL SELECT b.*, p.* FROM Branch1 AS b, PropertyForRent1 AS p WHERE b.bCity =* p.pCity; Example: RIGHT OUTER JOIN

  15. Example: RIGHT OUTER JOIN

  16. Example: FULL OUTER JOIN SELECT b.*, p.* FROM Branch1 AS b FULL JOIN PropertyForRent1 AS p ON b.bCity = p.pCity; • (SELECT b.*, p.* • FROM Branch1 AS b LEFT JOIN PropertyForRent1 AS p • ON b.bCity = p.pCity) • UNION • (SELECT b.*, p.* • FROM Branch1 AS b RIGHT JOIN PropertyForRent1 AS p • ON b.bCity = p.pCity);

  17. Example: FULL OUTER JOIN

  18. Example: Three Table JOIN ในแต่ละสาขา ให้แสดงรหัสและชื่อพนักงานที่ดูแลบ้านเช่า พร้อมทั้งที่ตั้ง จังหวัดของแต่ละสาขา และรายละเอียดบ้านเช่าที่ถูกดูแลโดยพนักงาน แบบที่ 1 : ANSI SQL-92 Syntax SELECT b.branchNo, b.city, e.empNo, e.empName, p.propertyNo, p.street FROM Branch AS b JOIN Employee AS e ON b.branchNo = e.branchNo JOIN Property_For_Rent AS p ON e.empNo = p.empNo;

  19. Example: Three Table JOIN แบบที่ 2 : Transact - SQL • SELECT b.branchNo, b.city, e.empNo, e.empName, p.propertyNo, p.street • FROM Branch AS b, Employee AS e, • Property_For_Rent AS p • WHERE b.branchNo = e.branchNo • AND e.empNo = p.empNo

  20. Example: Three Table JOIN

More Related