MSSql (компактный) DELETE-Query с JOIN

У меня есть этот запрос. Я хочу удалить все объекты из таблицы AgentsResultLinks-Table, у которых нет ссылки на объект в таблице результатов. Мне нужно решение с одним единственным запросом. Я получил ошибку, вызванную '*'.

DELETE AgentResultLinks.*
FROM AgentResultLinks LEFT JOIN Results 
ON AgentResultLinks.ResultID = Results.ID
WHERE Results.ID IS NULL

Может ли кто-нибудь помочь мне преобразовать этот запрос в действительный запрос mssql для компактной базы данных? Спектакль очень важен.


person Gepro    schedule 21.09.2012    source источник


Ответы (2)


Просто удалите .* из AgentResultLinks.*

DELETE Agent
FROM AgentResultLinks Agent 
LEFT JOIN Results R
       ON Agent.ResultID = R.ID
WHERE R.ID IS NULL;

См. синтаксис DELETE: DELETE (Transact-SQL)

см. пример SQLFiddle

person Himanshu Jansari    schedule 21.09.2012
comment
@Gepro Дайте псевдоним таблице и используйте его. Обновил ответ. - person Himanshu Jansari; 21.09.2012
comment
Произошла ошибка при синтаксическом анализе запроса. [Номер строки токена = 2, смещение строки токена = 1, токен с ошибкой = ОТ] - person Gepro; 21.09.2012
comment
Вы используете тот же запрос? Посмотрите на этот пример SQLFiddle. Я не получаю никакой ошибки. - person Himanshu Jansari; 21.09.2012

person    schedule
comment
этот запрос я пробовал до того, как написал этот пост. это слишком медленно. но это работает. - person Gepro; 21.09.2012
comment
AgentResultsLinks › 500000 и Результаты › 20000 - person Gepro; 21.09.2012