Подтвердить что ты не робот

DELETE FROM `table` AS` alias`... WHERE `alias`.`column`... почему синтаксическая ошибка?

Я пробовал это с MySQL:

DELETE FROM `contact_hostcommands_relation` AS `ContactHostCommand` WHERE (`ContactHostCommand`.`chr_id` = 999999) LIMIT 1

И я получаю это:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE (`ContactHostCommand`.`chr_id` = 999999) LIMIT 1' at line 1

Примечание. Этот запрос генерируется автоматически и условия основаны на псевдонимах таблицы.

Почему я получаю эту ошибку?

Есть ли способ использовать псевдонимы таблицы в where where?

Является ли этот MySQL конкретным?

4b9b3361

Ответ 1

Вы можете использовать SQL следующим образом:

DELETE FROM ContactHostCommand 
USING `contact_hostcommands_relation` AS ContactHostCommand 
WHERE (ContactHostCommand.`chr_id` = 999999) 
LIMIT 1

Ответ 2

Что @Matus и @CeesTimmerman говорят о MSSQL, также работает в MySQL 5.1.73:

delete <alias> from <table> <alias> where <alias>.<field>...

Ответ 3

Вы не можете использовать AS в предложении DELETE с MySQL:

DELETE FROM `contact_hostcommands_relation` WHERE (`chr_id` = 999999) LIMIT 1