我需要在一条SQL语句中组合2个查询条件。我无法在逻辑上将它们结合起来。
1)休假经经理批准的员工
select e.employee_name,r.request_from_Date,r.request_to_Date from employee_leave e,emp_leave_request r
where e.employee_id=r.request_from_id and e.employee_manager_id= r.request_to_id
and r.request_Approved_date is not null
and r.request_reject_Date is null
and r.request_cancelled_Date is null;
2)属于经理团队的员工
select employee_id, employee_name, employee_email, employee_username, employee_leave_normal, employee_contact_no,employee_designation
from employee_leave a
where exists(select 1 from employee_leave b where lower(b.employee_username)=lower(:APP_USER) and a.employee_manager_id=b.employee_id);
答案 0 :(得分:0)
使用联合来组合2个SQL选择查询 例: https://www.w3schools.com/sql/sql_union.asp
答案 1 :(得分:0)
您可以使用INNER JOIN实现相同的功能。请了解什么是INNER join here
SELECT e1.*,
e.request_from_date,
e.request_to_date
FROM (
SELECT e.employee_id,
e.employee_name,
r.request_from_date,
r.request_to_date
FROM employee_leave e,
emp_leave_request r
WHERE e.employee_id=r.request_from_id
AND e.employee_manager_id= r.request_to_id
AND r.request_approved_date IS NOT NULL
AND r.request_reject_date IS NULL
AND r.request_cancelled_date IS NULL)e
inner join
(
SELECT employee_id,
employee_name,
employee_email,
employee_username,
employee_leave_normal,
employee_contact_no,
employee_designation
FROM employee_leave a
WHERE EXISTS
(
SELECT 1
FROM employee_leave b
WHERE Lower(b.employee_username)=Lower(:APP_USER)
AND a.employee_manager_id=b.employee_id) e1
ON e.employee_id=e1.employee_id