sql错误

smtd7mpg  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(285)

我在用mariadb。我正在尝试使用这两个表进行删除:
表格边框:

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:错误
[content]error de sql(1064):您的sql语法有错误;检查与您的mariadb服务器版本相对应的手册,了解在第2行的“inner join pedido on linped.numpedido=pedido.numpedido where numven”附近使用的正确语法
[接受器]
[页脚]输入ayuda acerca de este错误
在stackoverfolw中搜索解决方案时,我发现了一个与此解决方案类似的问题:

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”和“at line 2”附近使用的正确语法
[接受器]
[页脚]输入ayuda acerca de este错误

zzoitvuj

zzoitvuj1#

从删除 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

相关问题