| การ Join ตารางมี 2 ประเภท | ได้แก่ Inner Join และ Outer Join |
|---|---|
| Equijoin | เป็นการ join ตารางโดยใช้เครื่องหมาย "=" ในการ join ตาราง |
| Non-Equijoin | เป็นการ join ตารางโดยใช้เครื่องหมาย "<, >, <=, >=, <>" ในการ join ตาราง |
| Cross Join | เป็นการ join แบบ Catesian Product |
| Self Join | เป็นการ join กันเองภายในตารางเดียวกัน |
| Left Outer Join | เป็นการ join ข้อมูล โดยยึด ตารางซ้ายมือเป็นหลัก |
| Right Outer Join | เป็นการ join ข้อมูล โดยยึด ตารางขวามือเป็นหลัก |
| Full Outer Join | เป็นการ join ข้อมูล โดยยึด ตารางทั้งขวามือและซ้ายมือ |
subject:การ Join ตารางมี 2 ประเภท
content:การ Join ตารางมี 2 ประเภท ได้แก่ 1. Inner Join ได้แก่ Equijoin, Non-Equijoin, Cross Join, Self Join 2. Outer Join ได้แก่ Left Outer Join, Right Outer Join, Full Outer Join
subject:Equijoin SQL เป็นการ join ตารางโดยใช้เครื่องหมาย "=" ในการ join ตาราง
syntax:SELECT table_a.column_a1, table_a.column_a2, table_b.column_b1, table_b.column_b2 FROM table_a INNER JOIN table_b ON table_a.column_a1 = table_b.column_b1;
example:SELECT person.first_name, customer.last_name FROM person INNER JOIN customer ON person.serial = customer.serial;
subject:Non-Equijoin เป็นการ join ตารางโดยใช้เครื่องหมาย "<, >, <=, >=, <>" ในการ join ตาราง
syntax:SELECT table_a.column_a1, table_a.column_a2, table_b.column_b1, table_b.column_b2 FROM table_a INNER JOIN table_b ON table_a.column_a1 <> table_b.column_b1;
example:SELECT person.first_name, customer.first_name FROM person INNER JOIN customer ON person.sex <> customer.sex;
subject:Cross Join เป็นการ join แบบ Catesian Product
syntax:SELECT table_a.column_a1, table_a.column_a2, table_b.column_b1, table_b.column_b2 FROM table_a CROSS JOIN table_b
example:SELECT person.first_name, customer.first_name FROM person CROSS JOIN customer
subject:Self Join เป็นการ join กันเองภายในตารางเดียวกัน
syntax:SELECT table_alias_a.column_1, table_alias_a.column_2, table_alias_b.column_1, table_alias_b.column_2 FROM table_name AS table_alias_a INNER JOIN table_name AS table_alias_b ON table_alias_a.column_name = table_alias_b.column_name;
example:SELECT employee.first_name as my_name, header.first_name as header_name FROM person AS employee INNER JOIN person AS header ON employee.header_id = header.id;
subject:Left Outer Join เป็นการ join ข้อมูล โดยยึด ตารางซ้ายมือเป็นหลัก
syntax:SELECT table_alias_a.column_1, table_alias_a.column_2, table_alias_b.column_1, table_alias_b.column_2 FROM table_name AS table_alias_a LEFT OUTER JOIN table_name AS table_alias_b ON table_alias_a.column_name = table_alias_b.column_name;
example:SELECT employee.first_name as my_name, header.first_name as header_name FROM person AS employee LEFT OUTER JOIN person AS header ON employee.header_id = header.id;
subject:Right Outer Join เป็นการ join ข้อมูล โดยยึด ตารางขวามือเป็นหลัก
syntax:SELECT table_alias_a.column_1, table_alias_a.column_2, table_alias_b.column_1, table_alias_b.column_2 FROM table_name AS table_alias_a RIGHT OUTER JOIN table_name AS table_alias_b ON table_alias_a.column_name = table_alias_b.column_name;
example:SELECT employee.first_name as my_name, header.first_name as header_name FROM person AS header RIGHT OUTER JOIN person AS employee ON header.id = employee.header_id;
subject:Full Outer Join เป็นการ join ข้อมูล โดยยึด ตารางทั้งขวามือและซ้ายมือ
syntax:SELECT table_alias_a.column_1, table_alias_a.column_2, table_alias_b.column_1, table_alias_b.column_2 FROM table_name AS table_alias_a FULL OUTER JOIN table_name AS table_alias_b ON table_alias_a.column_name = table_alias_b.column_name;
example:SELECT employee.first_name as my_name, header.first_name as header_name FROM person AS header FULL OUTER JOIN person AS employee ON header.id = employee.header_id;