집 >데이터 베이스 >MySQL 튜토리얼 >mysql 개발 스킬: JOIN 업데이트 및 데이터 중복 검사/중복 제거_MySQL
주로 포함: JOIN, JOIN 업데이트, GROUP BY HAVING 데이터 중복 검사/중복 제거
1 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN(MySQL에서는 지원되지 않음), CROSS JOIN
이것은 제가 인터넷에서 찾은 매우 좋은 블로그 게시물로, Join 문을 설명하고 있습니다.
CODING HORROR-SQL 조인에 대한 시각적 설명
다음 그림을 보면 Join의 데이터 선택 범위를 명확하게 알 수 있습니다
[][1]
[1]: http://7xs09x.com1.z0.glb.clouddn.com/160725-imooc-mysql-development-skills-notes-001.png
2 필터 조건에 자신을 포함하는 테이블 업데이트
t1 t2 테이블에서 col_a의 반복 필드 업데이트
UPDATE t1 SET col_a = 'hi' WHERE t1.col_a IN ( SELECT b.col_a FROM t1 a INNER JOIN t2 b on a.col_a = b.col_a ) ; ERROR:1093
은 다음으로 변환될 수 있습니다:
UPDATE t1 aa JOIN( SELECT b.col_a FROM t1 a INNER JOIN t2 b on a.col_a = b.col_a )bb on aa.col_a= bb.col_a SET col_a = 'hi' ;
3 중복 데이터 조회 및 중복 데이터 삭제
GROUP BY 및 HAVING을 사용하여 중복 데이터 쿼리
SELECT col_a, COUNT(*) FROM t1 GROUP BY col_a HAVING COUNT(*) > 1 ;
중복된 데이터는 삭제하고 동일한 데이터에 대해서는 ID가 가장 큰 데이터를 유지합니다
DELETE a FROM t1 a JOIN ( SELECT col_a,COUNT(*),MAX(id) AS id FROM t1 GROUP BY col_a HAVING COUNT(*) > 1 )b ON a.col_a = b.col_a WHERE a.id < b.id ;
이 기사를 읽어주셔서 감사합니다. 모든 사람에게 도움이 되기를 바랍니다. 이 사이트를 지원해 주셔서 감사합니다!