>  Q&A  >  본문

다시 쓴 제목은 데이터 정리에 적합한 MySQL 쿼리문입니다.

<p>테이블이 3개 있습니다. 하나의 테이블은 이동 거리 테이블</p> <pre class="brush:php;toolbar:false;">테이블 경로 생성 ( 슬레이트 정수, 슬링 정수, dlat 정수, dlng int, 거리 정수 );</pre> <p>테이블은 사이트 테이블입니다</p> <pre class="brush:php;toolbar:false;">테이블 사이트 만들기 ( 이드 정수, 이름 varchar(100), 위도 정수, 길이 정수 );</pre> <p>기술자를 위한 테이블도 있습니다</p> <pre class="brush:php;toolbar:false;">테이블 fse 생성 ( 이드 정수, 이름 varchar(100), 위도 정수, 길이 정수 );</pre> <p>이동 거리 표는 Google API 요청을 통해 동적으로 채워집니다. 따라서 새로운 정류장이나 새로운 기술자가 있으면 Google을 통해 모든 새로운 이동 거리가 요청되고 경로 테이블에 저장됩니다. </p> <p>물론 고객이나 기술자가 떠나는 경우도 있습니다. 이 경우 거리 테이블의 항목은 더 이상 사용되지 않더라도 데이터베이스에 남아 있습니다. </p> <p>테이블에서 사용하지 않는 행을 삭제하고 싶습니다. 그래서 저는 이 바이올린</p>의 설명에 쓰여진 것처럼 사이트/기술자 테이블에서 "존재하지 않는" 위도/경도 조합을 모두 제거할 수 있는 쿼리를 찾고 있습니다. <p>https://www.db-fiddle.com/f/mwF1iyZ7nn8rnDcE8Wstch/0</p> <p>이 쿼리를 직접 작성할 수도 있지만 유일한 해결책은 매우 많은 수의 하위 쿼리를 사용하는 것입니다. 하지만 더 효율적인 방법이 있는지 궁금합니다. 여기 SQL 전문가가 도움을 줄 수 있기를 바랍니다. </p>
P粉413704245P粉413704245413일 전537

모든 응답(1)나는 대답할 것이다

  • P粉546179835

    P粉5461798352023-09-04 14:09:32

    다음 쿼리가 작동해야 합니다.

    으아악

    테이블에서 값을 구분하는 데에만 사용됩니다sitesfse中选择所有记录,并删除在子查询中找不到记录的routes表中的行。需要使用两列的concat,因为in只能处理一列。|.

    DB-Fiddle

    회신하다
    0
  • 취소회신하다