簡體   English   中英

為什么我的SQL查詢中出現此錯誤

[英]Why am I getting this error in my SQL Query

嘗試此查詢時:

 UPDATE l1_a
 SET l1_a.goals_for = l1_a.goals_for + l1_results.score1
 FROM l1_results, l1_a
 WHERE l1_results.team1 = l1_a.team_id;

我收到錯誤:

   You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM l1_results, l1_a WHERE l1_results.team1 = l1_a.team_id' at line 3

l1_a包含Goal_for和team_id

l1_results包含得分1(這是多少個目標)和team1(這是team_id)

我的查詢有問題嗎? 我仔細檢查了所有列和表在查詢中的正確名稱

謝謝

documentation for UPDATE指出這是多表UPDATE語句的語法:

Multiple-table syntax:

UPDATE [LOW_PRIORITY] [IGNORE] table_references
    SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
    [WHERE where_condition]

嘗試這個:

 UPDATE l1_results, l1_a
 SET l1_a.goals_for = l1_a.goals_for + l1_results.score1
 WHERE l1_results.team1 = l1_a.team_id;

您正在組合選擇和更新語法。 更新語句中沒有from

嘗試這個:

UPDATE l1_a
SET l1_a.goals_for = l1_a.goals_for + 
  (select l1_results.score1 
  from l1_results 
  where l1_results.team1 = l1a.team_id)

如果l1_results中沒有記錄,則可以清空數據。 最好添加一個IFNULL:

UPDATE l1_a
SET l1_a.goals_for = l1_a.goals_for + IFNULL(
  (select l1_results.score1 
  from l1_results 
  where l1_results.team1 = l1a.team_id), 0)

更改

UPDATE l1_a
SET l1_a.goals_for = l1_a.goals_for + l1_results.score1
FROM l1_results, l1_a
WHERE l1_results.team1 = l1_a.team_id;

UPDATE l1_a
SET l1_a.goals_for = l1_a.goals_for + l1_results.score1
WHERE l1_results.team1 = l1_a.team_id;

您不需要FROM l1_results,l1_a

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM