SQL Server 2008**'de INNER JOIN
kullanarak silmek istiyorum.
Ama bu hatayı alıyorum:
Msg 156, Seviye 15, Durum 1, Satır 15 'INNER' anahtar sözcüğünün yanında hatalı sözdizimi.
Benim kodum:
DELETE FROM WorkRecord2
INNER JOIN Employee ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'
Hangi tablodan sileceğinizi belirtmeniz gerekir, işte takma ad içeren bir sürüm:
DELETE w
FROM WorkRecord2 w
INNER JOIN Employee e
ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'
Sadece DELETE
ve FROM
arasına kayıtları silmek istediğiniz tablonun adını ekleyin çünkü silinecek tabloyu belirtmemiz gerekiyor. Ayrıca ORDER BY
cümlesini kaldırın çünkü kayıtları silerken sıralanacak bir şey yoktur.
Yani son sorgunuz şu şekilde olmalıdır:
DELETE WorkRecord2
FROM WorkRecord2
INNER JOIN Employee
ON EmployeeRun=EmployeeNo
WHERE Company = '1'
AND Date = '2013-05-06';
Bu sizin için yararlı olabilir mi?
DELETE FROM dbo.WorkRecord2
WHERE EmployeeRun IN (
SELECT e.EmployeeNo
FROM dbo.Employee e
WHERE ...
)
Ya da şunu dene -
DELETE FROM dbo.WorkRecord2
WHERE EXISTS(
SELECT 1
FROM dbo.Employee e
WHERE EmployeeRun = e.EmployeeNo
AND ....
)