删除在 SQL 上通过左连接找到的行

问题描述 投票:0回答:1

我使用此查询来显示所有部门及其经理,包括没有经理的部门,这就是我使用左连接的原因。现在我需要删除没有经理的部门。这是我当前的查询:

select 
    d.DEPARTMENT_NAME,
    concat(e.FIRST_NAME,"",e.LAST_NAME) as NAME,
    l.CITY 
from locations l
join departments d on d.LOCATION_ID = l.LOCATION_ID 
left join employees e on e.DEPARTMENT_ID = d.DEPARTMENT_ID 
where city = 'Seattle';

如何更改?

我认为我需要在某处使用删除命令,但我不确定具体在哪里

mysql relational-database sql-delete dbeaver
1个回答
0
投票

我使用子查询从“西雅图”的位置中选择 LOCATION_ID,我用它来限制删除该城市的部门。

DELETE d FROM departments d
LEFT JOIN employees e ON e.DEPARTMENT_ID = d.DEPARTMENT_ID
WHERE e.DEPARTMENT_ID IS NULL
AND d.LOCATION_ID IN (
    SELECT l.LOCATION_ID
    FROM locations l
    WHERE l.CITY = 'Seattle'
);
© www.soinside.com 2019 - 2024. All rights reserved.