以下是我的查询-
DELETE
FROM activity_details as ad, edit_details as ed
LEFT JOIN edit_details as ed
ON ed.details_id = ad.row_id
WHERE year(ad.activity_datetime) = year(GETDATE())-10
我遇到错误SQL错误[156] [S1000]:关键字'as'附近的语法不正确。 SQL错误[156] [S1000]:关键字“ as”附近的语法不正确。
能帮我纠正语法吗
答案 0 :(得分:3)
按如下所示进行更改。如果在删除语句中使用FROM
,则需要使用DELETE ad
FROM activity_details as ad
LEFT JOIN edit_details as ed
ON ed.details_id = ad.row_id
WHERE year(ad.activity_datetime) = year(GETDATE())-10
名称删除。
delete
答案 1 :(得分:1)
在 DELETE ad
FROM activity_details as ad
LEFT JOIN edit_details as ed
ON ed.details_id = ad.row_id
WHERE year(ad.activity_datetime) = year(GETDATE())-10
之后添加别名
=xlAnd
答案 2 :(得分:1)
您需要在delete子句中使用别名,然后使用FROM
。我还建议反对year(ad.activity_datetime)
并使用SARGable查询:
DELETE ad
FROM activity_details ad
LEFT JOIN edit_details ed ON ed.details_id = ad.row_id
WHERE ad.activity_datetime >= DATEADD(YEAR,DATEDIFF(YEAR, 0, GETDATE()-10),0)
AND ad.activity_datetime < DATEADD(YEAR,DATEDIFF(YEAR, 0, GETDATE()-9),0);
答案 3 :(得分:0)
您需要从查询中删除别名。