Sql 我正在尝试在SELECT子句中创建一个子查询
列出销售部门的所有员工,包括他们的员工编号, 姓、名和部门名Sql 我正在尝试在SELECT子句中创建一个子查询,sql,select,Sql,Select,列出销售部门的所有员工,包括他们的员工编号, 姓、名和部门名 SELECT emp_no, last_name, first_name, (SELECT emp_no FROM dept_emp de WHERE dept_no IN (SELECT dept_no FROM departments d WHERE e.emp_no = de.emp_no)) FR
SELECT
emp_no, last_name, first_name,
(SELECT emp_no
FROM dept_emp de
WHERE dept_no IN (SELECT dept_no
FROM departments d
WHERE e.emp_no = de.emp_no))
FROM employees e;
基本上是寻找其他高级方法来执行此操作
选择,越复杂越好。可以尝试的更复杂的子查询是使用CTE(公共表表达式)
例如:
SELECT e.emp_no, last_name, first_name, dept_name
FROM employees e
JOIN dept_emp de ON e.emp_no = de.emp_no
JOIN departments d ON de.dept_no = d.dept_no
WHERE d.dept_name = 'Sales';
您还可以尝试SQL视图,并将其包括在查询中。什么是“替代高级方法”?从什么时候开始,“越复杂越好”?我不明白你在问什么,复杂性和先进性似乎是一种观点。
WITH employee_salary AS (
SELECT
employee.emp_no,
employee.last_name,
employee.first_name,
salary.salary
FROM employee
JOIN salary
ON salary.emp_no = employee.emp_no
)
WITH employee_over_30 AS (
SELECT
emp_no,
last_name,
first_name
FROM employee
WHERE employee.age > 30
)
SELECT emp_no, last_name, first_name, department, avg_emp_salary
FROM employee_salary d join
employees_over_30 o
WHERE d.emp_no = s.emp_no