Ответ 1
Вы можете использовать SQL следующим образом:
DELETE FROM ContactHostCommand
USING `contact_hostcommands_relation` AS ContactHostCommand
WHERE (ContactHostCommand.`chr_id` = 999999)
LIMIT 1
Я пробовал это с 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 конкретным?
Вы можете использовать SQL следующим образом:
DELETE FROM ContactHostCommand
USING `contact_hostcommands_relation` AS ContactHostCommand
WHERE (ContactHostCommand.`chr_id` = 999999)
LIMIT 1
Что @Matus и @CeesTimmerman говорят о MSSQL, также работает в MySQL 5.1.73:
delete <alias> from <table> <alias> where <alias>.<field>...
Вы не можете использовать AS
в предложении DELETE
с MySQL:
DELETE FROM `contact_hostcommands_relation` WHERE (`chr_id` = 999999) LIMIT 1