의 두 항목을 삭제할 수 있습니다 내가 원하는 단지 rows3 및 row4을 elimate 테이블 어떻게 다른 형태와 다른 열
rowsid source_row same_as_row
row1 1 18
row2 3 18
row3 18 1
row4 18 3
처럼있다! 쿼리 row3 및 row4의 .help을 삭제합니다
의 두 항목을 삭제할 수 있습니다 내가 원하는 단지 rows3 및 row4을 elimate 테이블 어떻게 다른 형태와 다른 열
rowsid source_row same_as_row
row1 1 18
row2 3 18
row3 18 1
row4 18 3
처럼있다! 쿼리 row3 및 row4의 .help을 삭제합니다
DELETE FROM table
GROUP BY sourcerow
HAVING COUNT(*) > 1
그것은 당신 만 sourcerow
열에서 중복 값을 찾고 가정을해야
잘못된 sql, 나는 eleminate widht count (*)> 1을 원한다. eleiminate duplicata betweenn source_row same_as_row – schweinsteiger
@AbdelillahFarka : count (*) same_as_row> 1 삭제 행이 있으면 거기에 설명 된 행이 있습니까? – genesis
아직도 질문이 불분명하기 때문에 downvote하지 않을 것입니다. 그러나이 쿼리는 OP가 삭제하고자하는 행의 예가 맞지 않습니다. – JohnFx
편집 : 그럼 나를 날려 (이전 답변을 삭제) 이중 중첩 작품 이후
이 내가 그것을 할 거라고 방법은 (논리적 관점에서 매우 중복의 일부가 된 경우에도)입니다
DELETE
yourTable
FROM
yourTable
INNER JOIN
(SELECT * FROM (SELECT same_as_row FROM yourTable GROUP BY same_as_row)) as lookup
ON lookup.same_as_row = yourTable.source_row
WHERE
source_row > same_as_row
하위 쿼리를 사용할 수 있습니다. 파생 된 테이블에 이중으로 중첩하면됩니다. –
@MartinSmith : 편집마다? 그렇다면 왜 작동합니까? 범위와 관련이 있습니까? 또는 가장 깊은 하위 쿼리가 상관 관계가 없기 때문에? – MatBailie
[여기에 설명되어 있습니다] (http://www.xaprb.com/blog/2006/06/23/how-to-select-from-an-update-target-in-mysql/). 파생 테이블은 암시 적으로 임시 테이블로 구체화됩니다. –
select
rowsid, source_row, same_as_row
from tablename t1
where not exists
(
select * from tablename t2
where t2.source_row = t1.same_as_row and t2.same_as_row = t1.source_row and t1.rowsid > t2.rowsid)
)
당신이 아주 다투는 것 같아요. – schweinsteiger
복제하기 COUNT (*)>
일이 어떻게 데이터가 끝날 않은 데 을 same_as_row, rowsid, source_row에 의해 테이블 그룹에서 삭제? 삭제하는 것이 좋은 생각 인 것처럼 보이지만 다시 생성하지 못하게하는 것은 무엇입니까? (어떤 행이 우선 순위를 어떻게 말하는지와 같은 더 많은 정보가 필요합니다.) –
당신이 정말로하고 싶은 것을 보여줄 수 있습니까? 그게 네 식탁이야? –
RDBMS는 무엇을 제공합니까? – gbn