我有以下SQL查询:可以在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语句中使用
我喜欢这种方法,因为它避免使用相关的子查询。 https://en.wikipedia.org/wiki/Correlated_subquery –
关于Saharsh写的是什么,这是不是有错误,因为DELETE和FROM之间缺少别名b? (你现在可以完全删除别名,或混合在Saharsh的解决方案中) –
是的你的权利我已经更新并删除别名,认为它使整体更清洁。 –