设有以下3个表,我们可以看出,Jim是Website Develop部门的Programmer;Harry是Website Develop部门的Designer;而Wills是总经理,不属于任何部门。
现在要做的是:列出所有用户,以及他们所属的部门和职位。
tb_user 用户
| id | sName | id_Pos |
| 1 | Jim | 2 |
| 2 | Harry | 3 |
| 3 | Wills | 1 |
tb_pos 职位
| id | sCaption | id_Dpt |
| 1 | Manager | |
| 2 | Programmer | 1 |
| 3 | Designer | 1 |
tb_dpt 部门
| id | sCaption |
| 1 | WebSite Develop |
| 2 | Server Management |
由于要列出tb_user中的每一条记录,这里我们需要用左连接查询。而这里要连接3个表,所以应该这样写:
SELECT u.sName p.sCaption d.sCaption FROM tb_user AS u LEFT JOIN (tb_pos AS p LEFT JOIN tb_dpt AS d ON p.id_Dpt=d.id) ON u.id_Pos=p.id;
先连接了tb_pos和tb_dpt形成一个新表,然后再让tb_user去连接这个新表。
</div>