我正在使用MariaDB。我试图使用这两个表进行删除:
表LINPED:
CREATE TABLE LINPED (
NUMPEDIDO SMALLINT NOT NULL,
NUMLINEA SMALLINT NOT NULL,
NUMPIEZA CHAR(16),
PRECIOCOMPRA INTEGER,
CANTPEDIDA SMALLINT,
FECHARECEP datetime,
CANTRECIBIDA SMALLINT);
表格顺序:
CREATE TABLE PEDIDO (
NUMPEDIDO SMALLINT NOT NULL,
NUMVEND SMALLINT,
FECHA datetime);
起初我尝试这样做:
DELETE FROM LINPED
INNER JOIN PEDIDO
ON LINPED.NUMPEDIDO = PEDIDO.NUMPEDIDO
WHERE PEDIDO.NUMVEND= 1 AND PEDIDO.NUMPEDIDO= 1
[窗口标题] sesion1:错误
[Content] Error de SQL(1064):您的SQL语法有错误;查看与您的MariaDB服务器版本对应的手册,以便在第2行的'INNER JOIN PEDIDO ON LINPED.NUMPEDIDO = PEDIDO.NUMPEDIDO WHERE numven'附近使用正确的语法
[OK]
[页脚]查找有关此错误的帮助
在Stackoverflow中搜索解决方案我发现了一个与此解决方案类似的问题:
DELETE FROM LINPED
JOIN PEDIDO ON LINPED.NUMPEDIDO = PEDIDO.NUMPEDIDO
WHERE PEDIDO.NUMVEND = 1 AND PEDIDO.NUMPEDIDO = 1
但它不起作用,至少对我而言
[窗口标题] sesion1:错误
[Content] Error de SQL(1064):您的SQL语法有错误;查看与您的MariaDB服务器版本对应的手册,以便在'JOIN PEDIDO ON LINPED.NUMPEDIDO = PEDIDO.NUMPEDIDO WHERE PEDIDO.NUMVEND = 1 AND'第2行附近使用正确的语法
[OK]
[页脚]查找有关此错误的帮助
使用以下内容明确地从LINPED
表中删除:
DELETE l.*
FROM LINPED AS l
INNER JOIN PEDIDO AS p
ON l.NUMPEDIDO = p.NUMPEDIDO
WHERE p.NUMVEND = 1 AND p.NUMPEDIDO = 1