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