การ 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 ที่ไม่เหมือนกันทั้งสองตาราง จะไม่ถูกนำออกมาแสดงค่า