Mysql 使用联接删除查询
我正在运行一个要从表中删除的查询Mysql 使用联接删除查询,mysql,sql,join,sql-delete,Mysql,Sql,Join,Sql Delete,我正在运行一个要从表中删除的查询 delete from sps inner join str on str.studentid = sps.studentid where str.studentid like '%2012%psy%' and str.semesterid=2 inner join papers on papers.id = sps.paperid where papers.c_id=10 and papers.p_semid=2 我不知道为什么它没有显示任
delete from sps
inner join str on str.studentid = sps.studentid
where str.studentid like '%2012%psy%'
and str.semesterid=2
inner join papers on papers.id = sps.paperid
where papers.c_id=10
and papers.p_semid=2
我不知道为什么它没有显示任何结果并给我一个错误
错误是:
#1064-您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 'str.studentid=sps.studentid上的内部联接str,其中str.studentid类似于“%2012%ps” 在2号线
在查询结束时,将两个
WHERE
子句的两个谓词移动到一个WHERE
子句中,如所述。比如:
DELETE s
FROM sps s
INNER JOIN str ON str.studentid = s.studentid
INNER JOIN papers ON papers.id = s.paperid
WHERE str.studentid LIKE '%2012%psy%'
AND str.semesterid = 2
AND papers.c_id = 10
AND papers.p_semid = 2
您可以在单个查询中使用
WHERE
子句一次。请尝试此查询
DELETE sps FROM sps
INNER JOIN str ON str.studentid=sps.studentid
INNER JOIN papers ON papers.id=sps.paperid
WHERE papers.c_id=10 AND papers.p_semid=2
AND str.studentid LIKE '%2012%psy%' AND str.semesterid=2
或
你犯了什么错误?请发布。你想删除什么?(哪个表?#1064-您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第2行的“INNER JOIN str ON str.studentid=sps.studentid INNER JOIN papers ON papers.id”附近使用的正确语法。这是新的Error@IPerfect更新了答案,试试看。
DELETE FROM sps, str, papers
USING sps
INNER JOIN str ON str.studentid=sps.studentid
INNER JOIN papers ON papers.id=sps.paperid
WHERE papers.c_id=10
AND papers.p_semid=2
AND str.studentid LIKE '%2012%psy%'
AND str.semesterid=2