2012-08-06 2 views
-1

특정 행을 기반으로 여러 행을 업데이트
이건, ItemNum 고유 한 하나의 테이블입니다
내 시도 :
SQL - 내가 특정 행의 데이터에서 여러 행을 업데이트하려고

UPDATE myTable t, (SELECT DISTINCT width, repeat 
      FROM myTable 
      WHERE ItemNum='80644') t1 
SET t.width = t1.width 
AND SET t.repeat = t1.repeat 
WHERE ItemNum='80645' 
AND WHERE ItemNum='80646' 

내가 그것을
를 작동하는 단일 행하지만 여러 행의 구문에 대해이 작업을 실행할 때 나에게 오류
#1064 - 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 myTable WHERE ItemNum='80644') t1 SET t.width' at line 2


을 제공합니다) '80646',

UPDATE myTable t, (SELECT DISTINCT width 
    FROM myTable 
    WHERE ItemNum='80644') t1 
SET t.width = t1.width 
WHERE ItemNum='80645' 
+0

이 문제는 상당수 있습니다. 올바른 구문을 찾으셨습니까? http://dev.mysql.com/doc/refman/5.0/en/update.html UPDATE 테이블 SET t.width = t1.width, t.repeat = t1.repeat 어디 t.ItemNum = # 및 t.ItemNum = #; – Shawn

+0

테이블에 어떻게 가입하고 계십니까? 당신은 당신의 mysql 스키마를 보여줄 수 있습니까? – Shawn

+0

왜 투표가 끝났습니까? –

답변

0

작동해야 문제를 것 같다,하지만 itemNum이는 80644

UPDATE myTable t 
join 
    (SELECT DISTINCT width, repeat 
      FROM myTable 
      WHERE ItemNum='80644') t1 
    on t.ItemNum in ('80645','80646') 
SET 
    t.width = t1.width, 
    t.repeat = t1.repeat 
+0

오른쪽. 그는 여기에 조인 절이 필요합니다. – Shawn

+0

죄송합니다. 가입을 추가했습니다. MySQL 이후 조금 있습니다. –

+0

에 여전히 오류가 발생했습니다. # 1064 - SQL 구문에 오류가 있습니다. MyTable t join (SELECT DISTINCT width, from FROM '5 행)에서 사용할 올바른 구문에 대한 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. \t \t –

-1
UPDATE t 
SET t.width = t1.width 
AND SET t.repeat = t1.repeat 
FROM myTable t INNER JOIN (SELECT DISTINCT width, repeat 
      FROM myTable 
      WHERE ItemNum='80644') t1 
ON ItemNum in ('80645' 

을 = 둘 이상의 행이 경우는 신뢰할 수있는 결과를 제공하지 않습니다

갱신 문은이 테이블을 업데이트 할 단 하나의 테이블 이름 을 가질 수

지원 테이블은 조인시에 지정되어 업데이트 문을 용이하게합니다.

+1

나는 이것이 적절한 mysql 구문이라고 생각하지 않는다. – Shawn

관련 문제