การ join เป็นการนำข้อมูลมากกว่า 2 ตารางขึ้นไป มาเชื่อมโยงกัน โดยตารางเหล่านั้นต้องมีจุดเชื่อมต่อ หรือ key เหมือนกันด้วย ไม่งั้นจะไม่สามารถเชื่อมต่อกันได้
LEFT JOIN จะทำการอ้างอิงตารางแรกก่อนเป็นสำคัญ ถ้าตารางแรกไม่มีข้อมูล จะไม่สนใจตารางที่ 2 สนใจแต่ข้อมูลตารางแรกเท่านั้น
ตารางตัวอย่าง
Table : user
id_user | name | age |
0001 | Tana Ton | 19 |
0002 | Bank Wong | 25 |
0003 | Jay Long | 15 |
0004 | Oom Wan | 14 |
Table : salary
date | id_user | salary | commission |
10/11/56 | 0001 | 15,500 | 3,000 |
12/12/56 | 0001 | 15,600 | 1.500 |
20/12/56 | 0002 | 10,000 | 4,000 |
10/12/56 | 0003 | 12,000 | 3,500 |
10/01/56 | 0003 | 10,000 | 2,000 |
10/02/56 | 0005 | 5,000 | 300 |
วิธีการเขียน
SELECT user.*,salary.* FROM user LEFT JOIN salary ON user.id_user= salary .id_user |
---|
ตัวอย่างการเขียนที่นำไปใช้จริง
<?php
$SQL=" SELECT user.*,salary.* FROM user
LEFT JOIN salary ON user.id_user= salary .id_user ";
LEFT JOIN salary ON user.id_user= salary .id_user ";
$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_user']; ?> </td>
<td align="center"> <?=$rs['name'];?> </td>
<td align="center"> <?=$rs['age'];?> </td>
<td align="center"> <?=$rs['salary'];?> </td>
<td align="center"> <?=$rs['commission'];?> </td>
</tr>
<? } ?>
</table>
</table>
ผลลัพธ์ตัวอย่าง
id_user | name | age | salary | commission |
0001 | Tana Ton | 19 | 15,500 | 3,000 |
0001 | Tana Ton | 19 | 15,600 | 1.500 |
0002 | Bank Wong | 25 | 10,000 | 4,000 |
0003 | Jay Long | 15 | 12,000 | 3,500 |
0003 | Jay Long | 15 | 10,000 | 2,000 |