Assume you have four datasets: "employees", "departments", "projects", and "assignments". The scheme of these databases are as follows: The "employees" dataset contains employee information including a unique "employee_ID", "employee_name", and "department_ID". The "departments" dataset contains department information including a unique "department_ID" and "department_name". The "projects" dataset contains project information including a unique "project_ID", "project_name", and "department_ID". The "assignments" dataset contains information about which employees are assigned to which projects, including the "employee_ID" and "project_ID" associated with each assignment. Write a SQL query to retrieve the name and department of all employees who are assigned to a project that is not in the same department as their own department.
时间: 2023-07-06 16:35:51 浏览: 94
Here's a SQL query to retrieve the name and department of all employees who are assigned to a project that is not in the same department as their own department:
```
SELECT e.employee_name, d.department_name
FROM employees e
INNER JOIN assignments a ON e.employee_ID = a.employee_ID
INNER JOIN projects p ON a.project_ID = p.project_ID
INNER JOIN departments d ON e.department_ID = d.department_ID
WHERE p.department_ID <> e.department_ID;
```
In this query, we are joining the "employees", "assignments", "projects", and "departments" datasets to retrieve the necessary information. We are selecting the "employee_name" and "department_name" columns from the "employees" and "departments" tables, respectively. Then we are using INNER JOINs to join the tables based on their corresponding IDs. Finally, we are adding a WHERE clause to filter the results and only show employees who are assigned to a project that is not in the same department as their own department. This is done by comparing the "department_ID" column in the "projects" table with the "department_ID" column in the "employees" table.
阅读全文