设有以下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>