하위 쿼리에도있는 테이블을 업데이트하려면 어떻게해야합니까? 2 단계로해야합니까? (임시 테이블 만들기 - 선택한 데이터를 넣은 다음 최종 테이블을 업데이트하십시오)참여가있는 select에서 업데이트하는 방법
각 CTN에 대한 네트워크 레이블로 invoiceLine 테이블을 업데이트하려고합니다.
최종 결과는 다음과 같습니다
invoiceLine
ctn network 1234 network1 2345 network2 3456 network1
나는 다음과 같은 테이블이 있습니다
invoiceLine
을 617,451,515,ctn network 1234 null 2345 null 3456 null
터미널
ctn network 1234 1 2345 2 3456 1
네트워크
id label 1 network1 2 network2
나는 선택을 실행할 수 있지만이로 업데이트하는 방법을 잘 모르겠어요 조인 :
update invoiceLine
inner join terminal on terminal.ctn = invoiceLine.ctn
set invoiceLine.network =
(
select network.label
from invoiceLine
inner join terminal on terminal.ctn = invoiceLine.ctn
inner join network on network.id = terminal.network
)
where invoiceLine.ctn = terminal.ctn
하지만 MySQL t
오류 코드가 hrows : 1093 당신의 FROM 절에서
가능한 중복 업데이트 대상 테이블 'invoiceLine'를 지정할 수 없습니다 [어떻게 UPDATE 쿼리에서 조인을 사용하는 ?] (http://stackoverflow.com/questions/15209414/how-to-use-join-in-update-query) –