반응형
id_specific_price id_product
-------------------------------
1 2
2 2
3 2
4 3
5 3
6 3
7 3
중복 삭제 필요, 예상 결과 :
id_specific_price id_product
-------------------------------
3 2
7 3
SELECT *
FROM ps_specific_price
WHERE id_specific_price NOT IN
(SELECT MAX(id_specific_price)
FROM ps_specific_price
GROUP BY id_product)
작동하지만
DELETE FROM ps_specific_price
WHERE id_specific_price NOT IN
(SELECT MAX(id_specific_price)
FROM ps_specific_price
GROUP BY id_product)
하지 않습니다. 이 문제를 해결할 수있는 많은 예제가 있지만 어떤 이유로 적응할 수 없습니다. 나는 그것이 GROUP BY라고 믿습니다. 예를 들면 :
DELETE FROM ps_specific_price
WHERE id_specific_price NOT IN
(SELECT MAX(p.id_specific_price)
FROM (SELECT * FROM ps_specific_price ) as p)
GROUP BY id_product
여기서 내가 어디로 잘못 갔습니까?
해결 방법
DELETE p
FROM ps_specific_price p JOIN
(
SELECT id_product, MAX(id_specific_price) id_specific_price
FROM ps_specific_price
GROUP BY id_product
) d
ON p.id_product = d.id_product
AND p.id_specific_price <> d.id_specific_price;
결과:
참조 페이지 https://stackoverflow.com/questions/19146794
반응형
'MySql' 카테고리의 다른 글
MySQL 리소스 ID # 5를 반환하는 mySQL 쿼리 (0) | 2020.12.22 |
---|---|
MySQL sqlalchemy 세션에서 개체 새로 고침 정보 (0) | 2020.12.22 |
MySQL 데이터베이스를 선택할 수 없습니다. (0) | 2020.12.21 |
MySQL 사람이 읽을 수있는 형식으로 날짜 형식 지정 (0) | 2020.12.21 |
MySQL의 특정 열 업데이트 후 트리거 실행 (0) | 2020.12.21 |
댓글