V strežniku SQL Server 2008 želim izbrisati z uporabo INNER JOIN
.
Vendar dobim to napako:
Sporočilo 156, raven 15, stanje 1, vrstica 15 Nepravilna sintaksa v bližini ključne besede 'INNER'.
Moja koda:
DELETE FROM WorkRecord2
INNER JOIN Employee ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'
Določiti morate, iz katere tabele izbrišete podatke, tukaj je različica z vzdevkom:
DELETE w
FROM WorkRecord2 w
INNER JOIN Employee e
ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'
Med DELETE
in FROM
dodajte ime tabele, iz katere želite izbrisati zapise, saj moramo določiti tabelo, ki jo želimo izbrisati. Prav tako odstranite klavzulo ORDER BY
, ker pri brisanju zapisov ni treba ničesar urejati.
Vaša končna poizvedba naj bo torej takšna:
DELETE WorkRecord2
FROM WorkRecord2
INNER JOIN Employee
ON EmployeeRun=EmployeeNo
WHERE Company = '1'
AND Date = '2013-05-06';
To vam je lahko v pomoč -
DELETE FROM dbo.WorkRecord2
WHERE EmployeeRun IN (
SELECT e.EmployeeNo
FROM dbo.Employee e
WHERE ...
)
Ali pa poskusite to -
DELETE FROM dbo.WorkRecord2
WHERE EXISTS(
SELECT 1
FROM dbo.Employee e
WHERE EmployeeRun = e.EmployeeNo
AND ....
)