Chcę usunąć dane używając INNER JOIN
w SQL Server 2008.
Ale dostaję ten błąd:
Msg 156, Level 15, State 1, Line 15. Nieprawidłowa składnia w pobliżu słowa kluczowego 'INNER'.
Mój kod:
DELETE FROM WorkRecord2
INNER JOIN Employee ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'
Musisz określić z jakiej tabeli usuwasz, tutaj jest wersja z aliasem:
DELETE w
FROM WorkRecord2 w
INNER JOIN Employee e
ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'
Po prostu dodaj nazwę tabeli pomiędzy DELETE
a FROM
, z której chcesz usunąć rekordy, ponieważ musimy określić tabelę do usunięcia. Usuń również klauzulę ORDER BY
ponieważ nie ma nic do zamawiania podczas usuwania rekordów.
Więc twoje zapytanie powinno wyglądać tak:
DELETE WorkRecord2
FROM WorkRecord2
INNER JOIN Employee
ON EmployeeRun=EmployeeNo
WHERE Company = '1'
AND Date = '2013-05-06';
Czy to może być dla Ciebie pomocne -
DELETE FROM dbo.WorkRecord2
WHERE EmployeeRun IN (
SELECT e.EmployeeNo
FROM dbo.Employee e
WHERE ...
)
Lub spróbuj tego -
DELETE FROM dbo.WorkRecord2
WHERE EXISTS(
SELECT 1
FROM dbo.Employee e
WHERE EmployeeRun = e.EmployeeNo
AND ....
)