[英]mysql update from another table
我想從表西班牙文更新MySQL表cp5sql,並在PhpMyadmin中使用以下語句。 字段名稱是正確的,盡管每個表中都有一些不同。 該聲明的最后一部分是將更新限制為僅用於測試的“ able”一詞。
我收到一個錯誤,指出第2行出現了問題。
UPDATE cp5sql c
SET (Spanish_ID, Spanish_Type,Spanish_Uoffset,Spanish_Synset,Spanish_Word)=
(SELECT SID,type,offset,synset,word FROM spanish s
WHERE s.type=c.Type AND s.synset=c.synset AND c.Word ='able');
我也嘗試過:
UPDATE cp5sql
SET (Spanish_ID, Spanish_Type,Spanish_Uoffset,Spanish_Synset,Spanish_Word)=
(SELECT SID,type,offset,synset,word FROM spanish
WHERE spanish.type=cp5sql.Type AND spanish.synset=cp5sql.synset AND cp5sql.Word ='able');
您有一個很好的猜測,但這實際上是UPDATE FROM
語法。
像這樣:
UPDATE
Table_A
SET
Table_A.col1 = Table_B.col1,
Table_A.col2 = Table_B.col2
FROM
Some_Table AS Table_A
INNER JOIN Other_Table AS Table_B
ON Table_A.id = Table_B.id
WHERE
Table_A.col3 = 'cool'
嘗試使您的示例成為這種語法將類似於:
UPDATE cp5sql c
SET Spanish_ID = SID,
Spanish_Type = type,
Spanish_Uoffset = offset,
Spanish_Synset = synset,
Spanish_Word = word
FROM spanish s
WHERE s.type = c.Type
AND s.synset = c.synset
AND c.Word ='able';
您必須使用UPDATE JOIN
:
UPDATE cp5sql c
JOIN spanish s
ON s.type = c.Type AND s.synset = c.synset AND c.Word = 'able'
SET
c.Spanish_ID = s.SID,
c.Spanish_Type = s.type,
c.Spanish_Uoffset = s.offset,
c.Spanish_Synset = s.synset,
c.Spanish_Word = s.word;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.