我正在使用MariaDB。 我试图使用这两个表进行删除:
表LINPED:
CREATE TABLE LINPED (
NUMPEDIDO SMALLINT NOT NULL,
NUMLINEA SMALLINT NOT NULL,
NUMPIEZA CHAR(16),
PRECIOCOMPRA INTEGER,
CANTPEDIDA SMALLINT,
FECHARECEP datetime,
CANTRECIBIDA SMALLINT);
表PEDIDO:
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:错误
[内容] Error de SQL(1064):您的SQL语法有错误;查看与您的MariaDB服务器版本对应的手册,以获得在' INNER JOIN PEDIDO附近使用的正确语法 ON LINPED.NUMPEDIDO = PEDIDO.NUMPEDIDO 在哪里数量'在第2行
[Aceptar]
[页脚] Encontrar ayuda acerca de este error
在Stackoverfolw中搜索解决方案我在此解决方案中发现了一个类似的问题:
DELETE FROM LINPED
JOIN PEDIDO ON LINPED.NUMPEDIDO = PEDIDO.NUMPEDIDO
WHERE PEDIDO.NUMVEND = 1 AND PEDIDO.NUMPEDIDO = 1
但它不起作用,至少对我而言
[窗口标题] sesion1:错误
[内容] Error de SQL(1064):您的SQL语法有错误;查看与您的MariaDB服务器版本对应的手册,以获得正确的语法,以便在LINPED.NUMPEDIDO = PEDIDO.NUMPEDIDO附近使用' JOIN PEDIDO 在哪里PEDIDO.NUMVEND = 1和'在第2行
[Aceptar]
[页脚] Encontrar ayuda acerca de este error
答案 0 :(得分:1)
使用以下内容明确地从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