-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 構文にエラーがあります。Near 'inner join str on str.studentid=sps.studentid where str.studentid like '%2012%ps' at line 2 を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

4

2 に答える 2

1

Mysql構文で説明されているように、クエリの最後にある 2 つのWHERE句の 2 つの述語を1 つの句に移動します。何かのようなもの:WHEREDELETE

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
于 2012-09-08T09:06:42.613 に答える
0

WHERE句は1回のクエリで1回使用できます。
このクエリを試してください

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 

また

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 
于 2012-09-08T09:13:13.087 に答える