[SQL] 서로 값을 하나 개의 MySQL의 테이블을 업데이트
SQL서로 값을 하나 개의 MySQL의 테이블을 업데이트
나는 다른 정보를 기반으로 한 MySQL의 테이블을 업데이트하기 위해 노력하고있어.
내 원래 표는 다음과 같습니다
id | value
------------
1 | hello
2 | fortune
3 | my
4 | old
5 | friend
그리고 tobeupdated 테이블 외모가 좋아 :
uniqueid | id | value
---------------------
1 | | something
2 | | anything
3 | | old
4 | | friend
5 | | fortune
내가 값을 기준으로 원래의 ID로 tobeupdated의 ID를 업데이트 할 (문자열은 VARCHAR (32) 필드에 저장).
업데이트 된 표는 희망처럼 보일 것입니다 :
uniqueid | id | value
---------------------
1 | | something
2 | | anything
3 | 4 | old
4 | 5 | friend
5 | 2 | fortune
나는 쿼리 그 작품을 가지고 있지만 매우 느린 :
UPDATE tobeupdated, original
SET tobeupdated.id = original.id
WHERE tobeupdated.value = original.value
수행 된 업데이트의 일부분으로 제한 시간이 내 CPU 밖으로 maxes 결국 리드 (일치하는 수천 값이있는). 나는 느려집니다 값으로 일치 알고 있지만, 내가 함께 일치 할 필요가있는 유일한 데이터입니다.
이 같은 값을 업데이트하는 더 좋은 방법이 있나요? 즉 빠른 것이 있을지, 병합 된 결과에 대한 세 번째 테이블을 만들 수 있을까?
내가 다른 테이블의 값으로 테이블을 업데이트 할 수 있습니까?하지만 도움이 정말하지 않았다 - 나는 MySQL을 시도했다. 어떤 아이디어?
MySQL의 초보자 도움에 미리 감사드립니다!
해결법
-
==============================
1.
UPDATE tobeupdated INNER JOIN original ON (tobeupdated.value = original.value) SET tobeupdated.id = original.id
그게 무엇을해야하고, 정말 그는 당신이 정확하게 일을. 그러나, 나는 좋아 '가입하기'에 대한 구문은 'WHERE'조건, 나는 쉽게 읽을의 생각에 여러보다는 조인
느리게 실행에 관해서는, 얼마나 큰 테이블은? 당신은 tobeupdated.value 및 original.value에 인덱스를 가져야한다
편집하다: 우리는 또한 쿼리를 단순화 할 수 있습니다
UPDATE tobeupdated INNER JOIN original USING (value) SET tobeupdated.id = original.id
사용되는 속기 (A)의 두 테이블은 동일한 ID로는 키가 참여하면라는. IE의 동등을 조인 - http://en.wikipedia.org/wiki/Join_(SQL)#Equi-join
-
==============================
2.그것은 해당 테이블의 사용 무엇 달려있다,하지만 당신은 삽입 및 업데이트에 원래 테이블에 트리거를 가하고 고려할 수 있습니다. 삽입 또는 업데이트가 완료되면, 원래의 테이블에서 하나의 항목에 기초하여 제 2 테이블을 업데이트합니다. 그것은 빨리 될 것입니다.
그것은 해당 테이블의 사용 무엇 달려있다,하지만 당신은 삽입 및 업데이트에 원래 테이블에 트리거를 가하고 고려할 수 있습니다. 삽입 또는 업데이트가 완료되면, 원래의 테이블에서 하나의 항목에 기초하여 제 2 테이블을 업데이트합니다. 그것은 빨리 될 것입니다.
from https://stackoverflow.com/questions/5727827/update-one-mysql-table-with-values-from-another by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL Server 2008의 선택 쿼리 결과에서 테이블을 만드는 방법 [중복] (0) | 2020.04.05 |
---|---|
[SQL] 어떻게 SQL Server에서 외래 키를 만들려면 어떻게해야합니까? (0) | 2020.04.05 |
[SQL] 자바의 SQL 문자열을 구축 깨끗한 방법 (0) | 2020.04.05 |
[SQL] 왜 사람들이 너무 많은 SQL 커서를 싫어합니까? [닫은] (0) | 2020.04.05 |
[SQL] 어떻게 SELECT INTO OUTFILE와 MySQL을 errcode를 13 주위를받을 수 있나요? (0) | 2020.04.05 |