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

标签 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)

出现以下错误:

[Err] 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 'b WHERE NOT EXISTS(SELECT * FROM table_a a WHERE a.some_id = b.some_id)' at line 1

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

最佳答案

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

试试这个:

DELETE b 
FROM table_b b
WHERE NOT EXISTS (SELECT * FROM table_a a WHERE a.some_id = b.some_id)

关于mysql - 可以在 SQL 删除查询中使用别名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34353799/

相关文章:

mysql - 如何修复我的 table 以使药品过期?

php - 返回列表中没有记录的所有元素。 (MySQL)

c# - Linq - SQL 将参数传递给 GroupBy()

git - 如何重命名自定义 Git 别名?

在左连接中使用 group by 的 MySQL 子查询 - 优化

mysql - 分别对表的每一行执行两个连接?

MySQL 过程 - 内部 for 循环条件未产生正确的输出

python - MS SQL Python 日期时间晚于但不等于 '>' 返回结果为 '>='

sql - 窗口函数字段的别名在 HAVING 和 WHERE 子句中使用时导致 "not found"错误

bash - 启动 Python .py 脚本的别名