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

2021-11-27 00:00:00 sql alias syntax mysql

我用 MySQL 试过这个:

I tried this with 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

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

Note: This query is automatically generated and conditions are based on table aliases.

为什么会出现这个错误?

Why I get this error?

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

Is there any way to use table aliases in where clause?

这是特定于 MySQL 的吗?

Is this MySQL specific?

推荐答案

你可以这样使用 SQL:

You can use SQL like this:

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

相关文章