DELETE FROM`table` AS`alias` ... WHERE`alias``column` ...为什么语法错误?

Aal*_*abi 29 mysql sql syntax alias

我用MySQL试过这个:

DELETE FROM `contact_hostcommands_relation` AS `ContactHostCommand` WHERE (`ContactHostCommand`.`chr_id` = 999999) LIMIT 1
Run Code Online (Sandbox Code Playgroud)

我得到了这个:

#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
Run Code Online (Sandbox Code Playgroud)

注意:此查询是自动生成的,条件基于表别名.

为什么我会收到此错误?

有没有办法在where子句中使用表别名?

这个MySQL是否具体?

Raf*_*ros 34

@Matus和@CeesTimmerman关于MSSQL的内容也适用于MySQL 5.1.73:

delete <alias> from <table> <alias> where <alias>.<field>...
Run Code Online (Sandbox Code Playgroud)


小智 31

您可以像这样使用SQL:

DELETE FROM ContactHostCommand 
USING `contact_hostcommands_relation` AS ContactHostCommand 
WHERE (ContactHostCommand.`chr_id` = 999999) 
LIMIT 1
Run Code Online (Sandbox Code Playgroud)

  • `删除x从t,因为x`在TSQL中工作. (3认同)
  • 对于MSSQL:DELETE Con​​tactHostCommand FROM`contact_hostcommands_relation` AS ContactHostCommand (2认同)

adr*_*ien 5

你不能ASDELETEMySQL 的子句中使用:

DELETE FROM `contact_hostcommands_relation` WHERE (`chr_id` = 999999) LIMIT 1 
Run Code Online (Sandbox Code Playgroud)

  • 实际上,他可以.看到接受的答案. (5认同)