有这样的陈述:从ek_库存值lw中删除,其中lw.id_库存值= 6似乎在MariaDB中运行时出错。如果我删除“lw”-tablealias,它将正常工作:从ek_库存值中删除,其中ID_库存值= 6
lrpiutwd1#
在MariaDB的文档中未提及任何内容,请参见DELETE,但在MySQL的文档中指出了以下内容,请参见13.2.2 DELETE Syntax:
注
如果为表声明别名,则在引用该表时必须使用别名:DELETE t1 FROM test AS t1, test2 WHERE ...试试看:
DELETE t1 FROM test AS t1, test2 WHERE ...
DELETE `lw` FROM `ek_stockvalue` `lw` WHERE `lw`.`id_stockvalue` = 6;
参见dbfiddle。
vatpfxk52#
在delete语句中嵌套一个select语句(假设表中有一个名为'id'的标识列),然后可以在select语句中使用alias:
DELETE FROM ek_stockvalue WHERE id in ( SELECT id FROM ek_stockvalue lw WHERE lw.id_stockvalue = 6 )
2条答案
按热度按时间lrpiutwd1#
在MariaDB的文档中未提及任何内容,请参见DELETE,但在MySQL的文档中指出了以下内容,请参见13.2.2 DELETE Syntax:
注
如果为表声明别名,则在引用该表时必须使用别名:
DELETE t1 FROM test AS t1, test2 WHERE ...
试试看:
参见dbfiddle。
vatpfxk52#
在delete语句中嵌套一个select语句(假设表中有一个名为'id'的标识列),然后可以在select语句中使用alias: