我需要先执行父sql查询并将条件传递给子查询:
select
emp_id, dept_location from Department dept, (select * from employee) emp
where emp.dept_no=dept_no and dept.name ="Finance"
在上面的例子中,我不希望先获取员工表中的所有记录,然后应用连接条件。我正在寻找一个查询提示,它仅在子查询中获取财务部门的记录。
只需连接两个查询,不要使用子查询:
SELECT emp.emp_id,
dept.dept_location
FROM Department dept
INNER JOIN employee emp
ON emp.dept_no = dept.dept_no
WHERE dept.name = 'Finance'
如果您愿意,可以使用
LATERAL
连接(但 INNER JOIN
更简单并且可能更高效):
SELECT emp.emp_id,
dept.dept_location
FROM Department dept
CROSS JOIN LATERAL (
SELECT *
FROM employee emp
WHERE emp.dept_no = dept.dept_no
) emp
WHERE dept.name = 'Finance'