7. 查询部门表 所有 部门的名称, 和对应的员工名称 (右外连接)
时间: 2024-03-18 07:38:32 浏览: 19
可以使用以下 SQL 查询语句来实现:
```sql
SELECT d.name AS dept_name, e.name AS emp_name
FROM tb_dept d
RIGHT JOIN tb_emp e ON d.emp_id = e.id;
```
该查询语句使用了右外连接(RIGHT JOIN)操作符,表示查询结果包含 `tb_dept` 表中所有记录和 `tb_emp` 表中匹配的记录,同时还包含 `tb_emp` 表中没有匹配记录的部门信息。查询结果包含两列,分别是部门表中的 `name` 列和员工表中的 `name` 列,并且使用了 `AS` 关键字对列名进行了别名定义。
相关问题
查询员工表 所有 员工的姓名, 和对应的部门名称 (左外连接)
好的,查询语句如下:
```
SELECT e.name, d.name AS dept_name
FROM tb_emp e
LEFT JOIN tb_dept d
ON e.dept_id = d.id;
```
这个查询语句使用了左外连接(LEFT JOIN),查询所有员工的姓名以及对应的部门名称。如果员工没有所属部门,也会显示出来,但是部门名称会显示为 NULL。注意,我们使用了 AS 子句来给部门名称取了一个别名(dept_name),这样可以更清晰地表达查询结果。
1. 查询员工的姓名 , 及所属的部门名称 (隐式内连接实现)
假设有两个表:员工表(employees)和部门表(departments),员工表中有部门 ID(dept_id)作为外键关联部门表中的部门 ID(id),则可以使用内连接查询员工姓名及所属部门名称的语句如下:
```sql
SELECT employees.name, departments.name
FROM employees
INNER JOIN departments
ON employees.dept_id = departments.id;
```
其中,`INNER JOIN` 表示使用内连接,`employees` 和 `departments` 分别是表的别名,`ON` 后面的条件表示两个表关联的字段。此语句会查询出所有员工的姓名及其所属部门名称,如果员工表中的某个员工没有对应的部门信息,则该员工会被排除在查询结果之外。