복붙노트

[SQL] WHERE 절을 사용하여 여러 테이블 MySQL을 UPDATE 구문

SQL

WHERE 절을 사용하여 여러 테이블 MySQL을 UPDATE 구문

어떻게 ID가 동일 표 2의 데이터로 표 업데이트?

나는 다음 업데이트 문을 실행하면 (표 1의 id 필드는 표 2에 존재하지 않는 경우에도) 표 1에 모든 레코드를 업데이트합니다.

어떻게이 (가) 여러 업데이트 테이블 구문을 사용할 수 있습니다, ID가 표 2와 동일에 존재하는 경우에만 표에있는 레코드 만 업데이트?

UPDATE table1,table2
SET table1.value=table2.value 
WHERE table2.id=table1.id

미리 감사드립니다.

해결법

  1. ==============================

    1.MySQL의에 참여 여기 UPDATE의 올바른 구문입니다

    MySQL의에 참여 여기 UPDATE의 올바른 구문입니다

    UPDATE  table1 a
            INNER JOIN table2 b
                ON a.ID = b.ID
    SET     a.value = b.value 
    
  2. ==============================

    2.편집하다 MySQL을위한이있을거야

    편집하다 MySQL을위한이있을거야

    UPDATE table1 t1 INNER JOIN 
           table2 t2 ON t2.id = t1.id
       SET t1.value = t2.value 
    

    sqlfiddle

    원래 대답은 SQL Server에 대한했다

    UPDATE table1
       SET table1.value = table2.value 
      FROM table1 INNER JOIN 
           table2 ON table2.id=table1.id
    

    sqlfiddle

  3. ==============================

    3.이 시도 할 수 있습니다 :

    이 시도 할 수 있습니다 :

    UPDATE TABLE1
    SET column_name = TABLE2.column_name
    FROM TABLE1, TABLE2
    WHERE TABLE1.id = TABLE2.id
    
  4. ==============================

    4.

    UPDATE table1
    SET table1.value = (select table2.value 
    WHERE table2.id=table1.id)
    
  5. from https://stackoverflow.com/questions/15037883/mysql-update-syntax-with-multiple-tables-using-where-clause by cc-by-sa and MIT license