본문 바로가기
MySql

MySQL MYSQL에서 ORDER BY 및 LIMIT가 작동하지 않는 업데이트

by 베이스 공부 2020. 9. 22.
반응형

나는 MYSQL을 처음 사용하고 있으며이 포럼에서 해결할 수 없거나 많은 답변을 가지고 있어도이 진술의 오류를 식별 할 수 없습니다. MYSQL 데이터베이스를 사용하고 있습니다.

저는 Ratemaster와 요율이라는 2 개의 테이블이 있습니다. 여기에서 고객은 요율이 다른 하나의 제품을 가질 수 있습니다. Because of this, there is a duplication of customer and product fields, only the rate field changes. Now Table Ratemaster has all the fields : id, Customer code, Product, Rate, user whereas Table Rates has only: id, cust code, Rate, user. -user 필드는 session_user를 확인하기위한 것입니다.

이제 테이블 Ratemaster에는 Rate 필드가 비어있는 것을 제외하고 모든 필드 값이 동일한 3 개의 레코드가 있습니다. Table Rates has different rates. Rate 테이블의 Ratemaster에서 모든 요율을 업데이트하고 싶습니다. UPDATE LIMIT mysql 명령으로는이 작업을 수행 할 수 없으며 다음과 같은 오류가 발생합니다.

UPDATE 및 LIMIT의 잘못된 사용

UPDATE Ratemaster, Rates 
SET Ratemaster.Rate=Rates.Rate 
WHERE Ratemaster.user=Rates.user 
LIMIT 1

 

해결 방법

 


다중 테이블 구문의 경우 UPDATE는 이름이 지정된 각 테이블의 행을 업데이트합니다. in table_references that satisfy the conditions. In this case, ORDER BY 및 LIMIT는 사용할 수 없습니다.

다음을 시도하십시오.

UPDATE Ratemaster
SET Ratemaster.Rate =
(
    SELECT Rates.Rate
    FROM Rates
    WHERE Ratemaster.user = Rates.user
    ORDER BY Rates.id
    LIMIT 1
)

 

참조 페이지 https://stackoverflow.com/questions/9080403

 

 

반응형

댓글