반응형
마리아에서 'DEELETE'에 대해 지정된 Twice 테이블DB
마리아의 일부 레코드를 삭제하기 위해 쿼리를 만들었습니다.DB
쿼리:
DELETE
FROM
HrAttLogsFormatted
WHERE
DateIn = '2019-04-10'
AND Late != ''
AND ( FingerId, CreatedDate ) IN (
SELECT
FingerId,
MAX( CreatedDate )
FROM
HrAttLogsFormatted
WHERE
DateIn = '2019-04-10'
AND Late != ''
AND FingerId IN ( SELECT FingerId FROM HrAttLogsFormatted WHERE DateIn = '2019-04-10' AND Late != '' GROUP BY FingerId HAVING COUNT( FingerId ) > 1 )
GROUP BY
FingerId
)
결과:
표 'HrAttLogsFormated'가 'DELEATE'의 대상과 데이터에 대한 별도의 서치로 두 번 지정되었습니다.
하지만 제가 실패한 질문으로 해결할 수 있는 방법이 있을까요?
잘 부탁드립니다.
[EDIT-SOLUBLED] 신청과 질의만으로 해결됩니다.
DELETE t1
FROM HrAttLogsFormatted t1
INNER JOIN
(
SELECT FingerId, MinCreatedDate
FROM
(
SELECT FingerId, MIN(CreatedDate) AS MinCreatedDate
FROM HrAttLogsFormatted
WHERE DateIn = '2019-05-03' AND Late != ''
GROUP BY FingerId HAVING COUNT(FingerId) > 1
) x
) t2
ON t1.FingerId = t2.FingerId AND t1.CreatedDate = t2.MinCreatedDate;
이 문서를 삭제 가입으로 작성해 보겠습니다.
DELETE t1
FROM HrAttLogsFormatted t1
INNER JOIN
(
SELECT FingerId, MIN(CreatedDate) AS MinCreatedDate
FROM HrAttLogsFormatted
WHERE DateIn = '2019-04-10' AND Late != ''
GROUP BY FingerId
HAVING COUNT(FingerId) > 1
) t2
ON t1.FingerId = t2.FingerId AND t1.CreatedDate = t2.MinCreatedDate;
만약 당신이 당신의 현재 쿼리를 고수하고 싶다면, 당신은 그것이 작동하도록 당신의 주변에 추가적인 하위 쿼리를 추가할 수 있을 것입니다.WHERE IN
절:
AND (FingerId, CreatedDate) IN (
SELECT FingerId, MinCreatedDate
FROM
(
SELECT FingerId, MIN(CreatedDate) AS MinCreatedDate
FROM HrAttLogsFormatted
...
) x )
하지만 제가 준 버전이 더 간단하기 때문에 사용할 것입니다.
언급URL : https://stackoverflow.com/questions/55998410/specified-twice-table-for-delete-in-mariadb
반응형
'IT' 카테고리의 다른 글
iOS 애플리케이션을 위한 작업 대기열 대 디스패치 대기열 (0) | 2023.07.27 |
---|---|
100,000개 이상의 개별 IP 주소를 차단하는 방법 (0) | 2023.07.27 |
PHPUunit 모의 객체 및 정적 방법 (0) | 2023.07.27 |
CSS를 사용하여 텍스트 숨기기 (0) | 2023.07.27 |
Elastic Beanstalk Java 환경에 배포된 Spring Boot 애플리케이션이 502를 반환합니다. (0) | 2023.07.27 |