개발자

안녕하세요 delete문으로 바꾸고 싶은데 모르겠어서 질문드려요

2023년 04월 07일조회 153

지금 중복된 값을 찾았어요 중복된 값만 지우려고 하는데 아래 코드를 통해서 삭제해야할 것 같아요 SELECT DISTINCT A . * , D.cptype FROM nowon_event_appointment2 AS A LEFT OUTER JOIN nowon_event_appointment AS B ON A.appidx = B.idx LEFT OUTER JOIN nowon_member C ON A.mbId = C.mbId LEFT OUTER JOIN n_edu D ON C.mbCpName = D.cpname WHERE A.clickKindZ = '1679902451' && A.clickTimeCode = '117' && B.clickAppCancel = 'N' AND A.cpt = 'Y' GROUP BY A.cptNum DESC 사진은 sql 해석이라고 해요 WHERE절을 사용하면 된다고 하는데 저 코드를 풀어서 다시 코드를 어떻게 짜는지 모르겠어요 많은 관심 부탁드려요

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 2

인기 답변

김병수님의 프로필 사진

안녕하세요~! 여러 테이블에 걸쳐 조인 작업을 하셨는데, select 절을 보니 A.* 사용하신걸 보니 nowon_event_appointment2 테이블 데이터를 지우고 싶으신건가요?? 중복된 데이터를 지우고 싶다고는 하셨는데 정확히 어떤 테이블 데이터를 지우시려는건지 잘 모르겠습니다 만약 맞다면 A.*를 통해 nowon_event_appointment2 테이블의 unique id 값이 출력될 것이라 생각됩니다 (*unique id : primary key or unique key 등의 테이블에서 row를 대표하는 id) in 절을 통해 조회된 id 값을 삭제하시면 됩니다 sql) DELETE FROM nowon_event_appointment2 WHERE id IN (SELECT A.id FROM nowon_event_appointment2 AS A LEFT OUTER JOIN ... GROUP BY A.cptNum DESC) 다른 방법으로는 code level에서 작성하신 sql의 결과를 받아 delete sql를 실행 시키시면 됩니다

명진님의 프로필 사진

명진

작성자

그린컴퓨터아카데미 프론트엔드,웹퍼블리셔2023년 04월 11일

네 생각하신대로 nowon_event_appointment2 테이블 데이터를 지우고 싶은거였어요 급해서 저는 중복들을 찾아서 하나씩 지웠거든요ㅎㅎㅎㅎ 다음번에 사용해볼게요 감사합니다.

커리어리 AI 봇님의 프로필 사진

안녕하세요! 삭제를 위해 ' DELETE ' 쿼리를 사용하시려는 거죠? ' SELECT ' 쿼리를 ' DELETE ' 쿼리로 바꾸기 위해서는 몇 가지 주의할 점이 있습니다. 우선 ' DISTINCT '를 사용하셨는데, ' DELETE ' 쿼리에서는 ' DISTINCT '를 사용할 수 없습니다. ' GROUP BY ' 절을 이용하여 중복된 값을 제거하시면 됩니다. 또한 ' GROUP BY ' 절에서 ' A.cptNum '을 ' DESC '로 정렬하셨는데, ' DELETE ' 쿼리에서는 ' GROUP BY ' 절에서 정렬을 사용할 수 없습니다. 따라서, ' ORDER BY ' 절을 사용하시거나, ' GROUP BY ' 절에서 해당 필드를 제거하시면 됩니다. 최종적으로, ' DELETE ' 쿼리는 아래와 같이 작성하실 수 있습니다. 아래 쿼리에서 ' SELECT ' 절을 제외한 나머지 부분이 바로 기존 ' SELECT ' 쿼리의 ' WHERE ' 절입니다. ' GROUP BY ' 절에서는 중복된 ' appidx '를 제거합니다. 이렇게 제거된 ' appidx '들을 이용하여 ' DELETE ' 쿼리를 작성하면, 중복된 데이터를 삭제하실 수 있습니다. ----- ✅ Chat GPT의 답변을 평가해 주세요! 틀린 내용은 없는지, 답변이 도움이 되었는지 댓글로 작성해 주세요.

1
2
3
4
5
6
7
8
9
10
DELETE FROM nowon_event_appointment2
WHERE appidx IN (
  SELECT A.appidx
  FROM nowon_event_appointment2 AS A
  LEFT OUTER JOIN nowon_event_appointment AS B ON A.appidx = B.idx
  LEFT OUTER JOIN nowon_member C ON A.mbId = C.mbId
  LEFT OUTER JOIN n_edu D ON C.mbCpName = D.cpname
  WHERE A.clickKindZ = '1679902451' AND A.clickTimeCode = '117' AND B.clickAppCancel = 'N' AND A.cpt = 'Y'
  GROUP BY A.appidx
);

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!