-4

マネージャーがニューヨークにいる従業員を削除するには?

従業員テーブル

empid       name           salary          location
101          john          10000           newyork
102          pavan         25000           newyork
103          laxman        10000           ahmedabad
104          ram           15000           usa
105          arjun         30000           washington
106          gopal         12000           washington

表の部門列

empid       dept    managerid
101         a        102
102         a
103         a         102
104         b         105
105         b         
106         b         105
4

3 に答える 3

5

これは一部の RDBMS では機能しますが、すべてではありません。使用している RDBMS を教えていただければ、より完全なソリューションを提供できます。

DELETE FROM employee 
 WHERE emp_id IN (SELECT emp_id FROM department 
                    WHERE manager_id IN 
                         (SELECT emp_id FROM employees WHERE location = "newyork"));
于 2012-11-30T09:26:47.417 に答える
4

SQL Server ソリューション

delete E
  from Employee M
  join department D on D.managerid = M.empid
  join Employee E on E.empid = D.empid
 where M.location = 'usa';
于 2012-11-30T09:22:23.603 に答える
1
delete from emplyoee where empid in(
select e.empid from emplyoee  e 
left outer join emplyoee   e1 on e.empid=e1.empid
left outer join department d on d.managerid=e1.empid
where e1.location='usa'
)
于 2012-11-30T09:32:55.343 に答える