多表查询
比如 人员表 Users,部门表 Departments
人员表 部门表人员表信息有: 姓名,工号,部门代码
部门表信息有:部门代码,部门名称
现在要求查询出: 李东浩 的信息(工号、部门名称)
这就涉及到两个表的数据的关联,人员表的部门代码 关联 部门表的部门代码
SQL语句:
<pre>SELECT users.user_name,users.user_no,departments.department_name FROM users ,departments
WHERE users.department_code=departments.department_code</pre>
条件语句<pre>WHERE users.department_code=departments.department_code</pre>
以上可以看出,users表的列(也叫字段)department_code 等于 departments表的列department_code
这样的关联关系,就可以查出结果。
查询显示出来的列<pre>users.user_name,users.user_no,departments.department_name</pre>
显示users表的user_name列,users表的user_no列,departments表的department_name列
以上,在加个条件,<pre>and users.user_name='李东浩'</pre>
完整语句如下:
<pre>SELECT users.user_name,users.user_no,departments.department_name FROM users ,departments
WHERE users.department_code=departments.department_code
and users.user_name='李东浩'
</pre>
这样我们就查出所要求的数据了。
但是我们发现,不管要显示列 还是条件 列的关联等 都要写完整的表名(如Users、Departments),这样很麻烦, 我们可以用表的别名来代替 写完成的表名。
使用别名:
<pre>SELECT a.user_name,a.user_no,b.department_name FROM users a,departments b
WHERE a.department_code=b.department_code
and a.user_name='李东浩'</pre>
我们使用 a来表示users,使用b来表示departments
我们书写就很方便了。
以上。 2017-05-08
网友评论