한 테이블에서 다른 테이블로 값을 가져 오려고하면 모든 결과를 얻지 못합니다.복제 값이있는 JOIN의 UPDATE 테이블은 첫 번째 값만 반환합니다.
JOIN transaction ON transaction.invoice = invoicing.invoice
때때로, 나는 2 또는 3 같은 송장 번호와 송장 및 업데이트가 첫 번째 송장 번호에서 발생, 동일한 송장 번호와 다른 사람을 건너 뛰고이 : 나는에 물어 경우 예, 아래의 코드를 참조하십시오.
중복을 포함하여 모든 인보이스가 필요합니다.
UPDATE invoicing
JOIN transaction ON transaction.invoice = invoicing.invoice
SET invoicing.raison = transaction.transaction, invoicing.description =
transaction.description, invoicing.voyage_passenger = transaction.voyage_passenger
무엇이 누락 되었습니까?
편집 :
표 거래 :
|num |date |invoice |type |transaction |amount |description
|886051 |1375381803 |859532 |A |carte |7.00 |bla bla desc1
|886052 |1375381809 |859532 |P |repro |0.00 |bla bla desc2
표 인보이스 - 아래에 언급하지 위의 표에 비해 약 8 개의 열이 있습니다. 다시 말하면, 위의 두 번째 행의 정보가 아래의 표에 새 행에 포함 되기만하면됩니다. 또한이 중복 행을 삽입하기 위해 UPDATE 대신 INSERT가 필요하다는 것을 알게되었습니다.
|num |date |invoice |type |raison |amount |description |clientID
|951100 |1375381803 |859532 |A |carte |7.00 |bla bla desc1 |121212
|951101 |1375401111 |859533 |A |carte |7.00 |bla different |222444
감사합니다.
업데이트 쿼리를 선택 쿼리로 변경하십시오. 그러면 예기치 않은 결과를 초래하는 원인을 파악하는 데 도움이됩니다. –
'청구서 발송'또는 '거래'에 중복이 있습니까? 일부 테이블 데이터 예제가 도움이 될 것입니다. – valex
가장 좋은 추측 : 인보이스 발행의 단일 행과 일치하는 여러 행의 거래가 있습니다. 이 쿼리는 인보이스 발행에 새로운 행을 추가 할 것을 기대하고 있지만,'update'는 그렇게하지 않습니다. 새로운 행을 '삽입'해야합니다. –