Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用联接删除查询_Mysql_Sql_Join_Sql Delete - Fatal编程技术网

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