2011-11-23 4 views
1

나는 MAssive SQL 쿼리를 가지고 있습니다 ... 몇 안되는 테이블 중 innerjoined ... 그리고 지금, 나는 그들을 업데이 트해야 ... 나는 어떻게 할 수있는 생각이있다. 이것은 내 쿼리 (그게 작동합니다) . 그것은 내가 일할 수있는 업데이트 문을 얻으려고 노력 하나의 방법입니다,하지만 ... 난 분명히 내가 성공하지 못했습니다 후 그리고 ..SQL 왼쪽에 조인 된 테이블을 업데이트하는 방법?

내 SQL 쿼리는, 내가 업데이트 어떻게 지금

select t1.name AS DistroName,t2.name AS OriginName, t3.name AS DesktopName, t3.name AS desktoptest , t2.country, t1.status, t2.description , t5.name as oldtest, t6.name as multitest, t4.name as begintest 
from alldistros t1 
LEFT join origin t2 on t1.name=t2.name 
LEFT join desktop t3 on t2.name=t3.name 
LEFT join beginnerdistributions t4 on t3.name=t4.name 
LEFT join oldcomputers t5 on t4.name=t5.name 
LEFT join multimedia t6 on t5.name=t6.name 
WHERE t1.name = 'Absolute LInux' 

입니다 예를 들어 t1.name 필드를 "CatMan"으로 말할 수 있습니다. 여기서 t1.name = 'Absolute LInux'?

감사합니다 말 그대로 캔트이 특정한 경우에 그 일을 어떤 논리적 인 방법을 참조

..., 루안

답변

1
UPDATE alldistros SET name="CatMan" WHERE name = "Absolute Linux" 

난 당신이 테이블 및 쿼리의 개념이 혼합지고 있다고 생각 .

+0

그러나 내 데이터베이스의 둘 이상의 테이블에 '이름'필드가 있습니다. 이고 "absolute Lunux"라는 이름은 3 테이블 중 하나에있을 수 있습니다. 내가 왜 처음에 그들을 맺었는지. – mrbunyrabit

+0

이 경우 모든 이름이 동일하기 때문에 각 테이블에 하나씩 위의 쿼리를 6 번 적용하면됩니다. – Godwin

+0

ahhhhhhhhhhh Thats kinda clever ..... 고맙습니다. 고맙습니다. 고맙습니다. 고맙습니다. 어떻게 된건지 알려 드리겠습니다. – mrbunyrabit

0

이 방법이 유용할까요?

UPDATE alldistros 
SET name = "CatMan" 
from alldistros t1 
LEFT join origin t2 on t1.name=t2.name 
LEFT join desktop t3 on t2.name=t3.name 
LEFT join beginnerdistributions t4 on t3.name=t4.name 
LEFT join oldcomputers t5 on t4.name=t5.name 
LEFT join multimedia t6 on t5.name=t6.name 
WHERE t1.name = 'Absolute LInux' 

아마 나는 잘못 읽고 질문에, 당신은 이름이 당신을 위해 무엇을 찾고있는 경우 모든 테이블의 이름 열을 업데이트 할 않았다?

+0

Ive가 시도했지만 해당 오류가 발생했습니다. 그리고 ive는 "catman"과 같은 "catman"을 쓰려고했습니다. 여전히 오류가 있습니다. – mrbunyrabit

+0

나는 이것이 오래되었음을 알고 있지만,보고 있던 오류는 무엇입니까? – szeliga

+0

그것은 "Syntax error near from"=)입니다. – mrbunyrabit

관련 문제