J'ai essayé cela avec MySQL:
DELETE FROM `contact_hostcommands_relation` AS `ContactHostCommand` WHERE (`ContactHostCommand`.`chr_id` = 999999) LIMIT 1
Et je reçois ceci:
#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
Remarque: Cette requête est générée automatiquement et les conditions sont basées sur les alias de table.
Pourquoi je reçois cette erreur?
Existe-t-il un moyen d'utiliser des alias de table dans la clause where?
Est-ce spécifique à MySQL?
Vous pouvez utiliser SQL comme ceci:
DELETE FROM ContactHostCommand
USING `contact_hostcommands_relation` AS ContactHostCommand
WHERE (ContactHostCommand.`chr_id` = 999999)
LIMIT 1
Ce que @Matus et @CeesTimmerman ont dit à propos de MSSQL, fonctionne également dans MySQL 5.1.73:
delete <alias> from <table> <alias> where <alias>.<field>...
Vous ne pouvez pas utiliser AS
dans une clause DELETE
avec MySQL:
DELETE FROM `contact_hostcommands_relation` WHERE (`chr_id` = 999999) LIMIT 1