반응형
업데이트 행, 맨 위 행을 가져올 때 내부 결합
마리아 사용DB
업데이트하려고 합니다.membershipRenewDate
(인officiantsDetails
표)의 MAX 값 사용renewDate
(에)officiantsRenewals
표)
내부 결합 켜기officiant_id
(두 테이블 모두 동일한 열 이름)
이런 게 있는데 구문 오류가 발생하고 있습니다.
UPDATE officiantsDetails offd
SET offd.membershipRenewDate = offr.renewDate
FROM (SELECT TOP (1) renewDate, officiant_id FROM officiantsRenewals ORDER BY renewDate DESC ) as offr
WHERE offd.officiant_id = offr.officiant_id
CTE(Common Table Expression)를 사용할 수 있어야 합니다.다음을 사용합니다.WITH
"하위 질의"를 정의하는 절, 그리고 나서INNER JOIN
CTE를 업데이트할 테이블로 이동합니다.다음과 같이 표시됩니다.
WITH Top1RenewDate AS
(
SELECT TOP (1)
renewDate,
officiant_id
FROM officiantsRenewals
ORDER BY renewDate DESC
)
UPDATE offd
SET offd.membershipRenewDate = offr.renewDate
FROM officiantsDetails offd
INNER JOIN Top1RenewDate offr ON offd.officiants_id = offr.officiants_id
이 구문은 SQL Server에서도 사용할 수 있습니다. 단, 다음을 추가해야 합니다.;
이전에WITH
해당 시스템의 키워드입니다.
사용 중인 구문이 MariaDB가 아닙니다.MariaDB에서 다음을 사용할 수 있습니다.JOIN
:
UPDATE officiantsDetails offd JOIN
(SELECT renewDate, officiant_id
FROM officiantsRenewals
ORDER BY renewDate DESC
LIMIT 1
) offr
ON offd.officiant_id = offr.officiant_id
SET offd.membershipRenewDate = offr.renewDate;
사용 중인 구문은 SQL Server와 더 유사합니다.
언급URL : https://stackoverflow.com/questions/53543300/update-row-inner-join-with-getting-top-row
반응형
'programing' 카테고리의 다른 글
Mysql - 긴 텍스트 필드에 고유 인덱스를 작성할 수 있는 테이블 문 (0) | 2023.07.28 |
---|---|
도커 컨테이너의 런타임 성능 비용은 얼마입니까? (0) | 2023.07.28 |
Ubuntu 16.04에서 nodejs 업데이트 (0) | 2023.07.28 |
조건을 사용하여 잘라내기 (0) | 2023.07.28 |
jQuery: Backspace 키를 누르면 실행되지 않습니까? (0) | 2023.07.28 |