SQL 删除查询中可以使用别名吗?

Joe*_*dee 2 mysql sql alias sql-delete

我有以下 SQL 查询:

DELETE FROM table_b b WHERE NOT EXISTS (SELECT * FROM table_a a WHERE a.some_id = b.some_id)
Run Code Online (Sandbox Code Playgroud)

并收到以下错误:

[Err] 1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行的“b WHERE NOT EXISTS(SELECT * FROM table_a a WHERE a.some_id = b.some_id)”附近使用的正确语法

这似乎表明别名不能与 SQL 删除语句一起使用(?)

Sah*_*hah 11

是的,您可以在DELETE查询中使用别名。只要您在 DELETE 关键字之后使用该别名就可以了。它指定您从哪个表中删除记录。

尝试这个:

DELETE b 
FROM table_b b
WHERE NOT EXISTS (SELECT * FROM table_a a WHERE a.some_id = b.some_id)
Run Code Online (Sandbox Code Playgroud)