다시 쓴 제목은 데이터 정리에 적합한 MySQL 쿼리문입니다.
P粉413704245
2023-09-03 18:23:21
<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>
다음 쿼리가 작동해야 합니다.
으아악테이블에서 값을 구분하는 데에만 사용됩니다
sites
和fse
中选择所有记录,并删除在子查询中找不到记录的routes表中的行。需要使用两列的concat,因为in
只能处理一列。|
.DB-Fiddle