Вам необходимо установить псевдоним для таблицы, для которой вы хотите удалить, как показано в примере ниже, так как w
используется для WorkRecord2
.Требуется при необходимости с внутренними операторами удаления или обновления.
DELETE w
FROM WorkRecord2 w
INNER JOIN Employee e
ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'
Также допускается удаление только одной таблицы.Удаление с более чем одной таблицей разрешено в MySQL, а не в MSSQL.Вы можете найти живую демонстрацию Здесь .
Ниже приведен запрос с примерами данных.
create table WorkRecord2 (EmployeeRun int, empWorkNo varchar(10))
create table Employee (EmployeeNo int, empWorkNo varchar(10), company int, createdDate datetime)
insert into WorkRecord2 Values (1, 'EMW101'),(2, 'EMW102'),(3, 'EMW103'),(4, 'EMW104'),(5, 'EMW105')
insert into Employee values(1, 'EMW101', 1, GETDATE()),(2, 'EMW103', 2, GETDATE())
Select * from WorkRecord2
Select * from Employee
-- This will delete with employeeRun 1 and empWorkNo EMW101
DELETE w
FROM WorkRecord2 w
INNER JOIN Employee e
ON EmployeeRun=EmployeeNo
WHERE Company = 1 and Cast(createdDate as DATE) = Cast(GETDATE() as DATE)
Select * from WorkRecord2
Select * from Employee
Перед удалением данных таблицы, как показано ниже.
EmployeeRun empWorkNo
---------------------
1 EMW101
2 EMW102
3 EMW103
4 EMW104
5 EMW105
После удаления с внутренним соединением данные таблицы выглядят так, как показано.
EmployeeRun empWorkNo
---------------------
2 EMW102
3 EMW103
4 EMW104
5 EMW105