Ik wil verwijderen met behulp van INNER JOIN
in SQL Server 2008.
Maar ik krijg deze foutmelding:
Msg 156, Level 15, State 1, Line 15 Onjuiste syntaxis bij het sleutelwoord 'INNER'.
Mijn code:
DELETE FROM WorkRecord2
INNER JOIN Employee ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'
Je moet specificeren uit welke tabel je verwijdert, hier is een versie met een alias:
DELETE w
FROM WorkRecord2 w
INNER JOIN Employee e
ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'
Voeg gewoon de naam van de tabel toe tussen DELETE
en FROM
van waaruit je records wilt verwijderen, omdat we de tabel moeten specificeren om te verwijderen. Verwijder ook de ORDER BY
clausule omdat er niets te ordenen is bij het verwijderen van records.
Dus je uiteindelijke query zou er als volgt uit moeten zien:
DELETE WorkRecord2
FROM WorkRecord2
INNER JOIN Employee
ON EmployeeRun=EmployeeNo
WHERE Company = '1'
AND Date = '2013-05-06';
Kan dit nuttig voor u zijn -
DELETE FROM dbo.WorkRecord2
WHERE EmployeeRun IN (
SELECT e.EmployeeNo
FROM dbo.Employee e
WHERE ...
)
Of probeer dit -
DELETE FROM dbo.WorkRecord2
WHERE EXISTS(
SELECT 1
FROM dbo.Employee e
WHERE EmployeeRun = e.EmployeeNo
AND ....
)