การ join เป็นการนำข้อมูลมากกว่า 2 ตารางขึ้นไป มาเชื่อมโยงกัน โดยตารางเหล่านั้นต้องมีจุดเชื่อมต่อ หรือ key เหมือนกันด้วย ไม่งั้นจะไม่สามารถเชื่อมต่อกันได้
INNER JOIN เลือกเฉพาะข้อมูลที่มี key ตรงกันเท่านั้นมาแสดง
ตารางตัวอย่าง
Table : TABLE_USER
id | Name |
1 | Tomsun |
2 | Songkarn |
3 | Joney |
4 | Mon |
5 | Boy |
Table : TABLE_SALARY
id | Salary |
1 | 46,000 |
2 | 3,500 |
5 | 2,180 |
6 | 180 |
7 | 4,320 |
วิธีการเขียน INNER JOIN
SELECT * FROM TABLE_USER INNER JOIN TABLE_SALARY ON TABLE_USER.id = TABLE_SALARY.id |
ตัวอย่างการเขียนที่นำไปใช้จริง
<?php
include "connect.php";
$SQL=" SELECT * FROM
TABLE_USER INNER JOIN TABLE_SALARY
ON TABLE_USER.id = TABLE_SALARY.id ";
TABLE_USER INNER JOIN TABLE_SALARY
ON TABLE_USER.id = TABLE_SALARY.id ";
$QUERY= mysql_query($SQL) or die ("Error Query [".$SQL."]");
?>
<table width="100%" >
<tr>
<td bgcolor="#FFFFFF" width="50" align="center"> Id </td>
<td bgcolor="#FFFFFF" width="573" align="center"> Name </td>
<td bgcolor="#FFFFFF" width="100" align="center"> Salary </td>
</tr>
<tr>
<td bgcolor="#FFFFFF" width="50" align="center"> Id </td>
<td bgcolor="#FFFFFF" width="573" align="center"> Name </td>
<td bgcolor="#FFFFFF" width="100" align="center"> Salary </td>
</tr>
<?php while($rs=mysql_fetch_array($QUERY)) { ?>
<tr>
<td align="center"> <?=$rs['id']; ?> </td>
<td align="center"> <?=$rs['Name'];?> </td>
<td align="center"> <?=$rs['Salary'];?> </td>
</tr>
<? } ?>
</table>
</table>
ผลลัพธ์ตัวอย่าง
id | Name | Salary |
1 | Tomsun | 46,000 |
2 | Songkarn | 3,500 |
5 | Boy | 3,500 |
จะเห็นได้ว่า ข้อมูลที่มี id เหมือนกันทั้งสองตาราง จะถูกแสดงข้อมูลออกมา ส่วนid ที่ไม่เหมือนกันทั้งสองตาราง จะไม่ถูกนำออกมาแสดงค่า