Le titre réécrit est : Instructions de requête MySQL adaptées au nettoyage des données
P粉413704245
2023-09-03 18:23:21
<p>J'ai trois tables. Un tableau est un tableau des distances de déplacement</p>
<pre class="brush:php;toolbar:false;">créer des routes de table
(
latte int,
lancer int,
dlat int,
dlng int,
distance entière
);</pré>
<p>Une table est une table de site</p>
<pre class="brush:php;toolbar:false;">créer des sites de tables
(
identifiant int,
nom varchar(100),
latin entier,
gnl int
);</pré>
<p>Il y a aussi une table pour les techniciens</p>
<pre class="brush:php;toolbar:false;">créer une table fse
(
identifiant int,
nom varchar(100),
latin entier,
gnl int
);</pré>
<p>Le tableau des distances parcourues est renseigné dynamiquement via les requêtes de l'API Google. Ainsi, s'il y a de nouveaux arrêts ou de nouveaux techniciens, toutes les nouvelles distances parcourues sont demandées via Google et stockées dans le tableau de route. </p>
<p>Bien entendu, il peut également arriver qu'un client ou un technicien parte. Dans ce cas, les entrées de la table de distance restent dans la base de données même si elles ne sont plus utilisées. </p>
<p>Je souhaite supprimer ces lignes inutilisées du tableau. Je recherche donc une requête qui puisse supprimer toutes les combinaisons latitude/longitude "inexistantes" dans la table sites/techniciens, comme écrit dans les commentaires de ce violon</p>
<p>https://www.db-fiddle.com/f/mwF1iyZ7nn8rnDcE8Wstch/0</p>
<p>Je pourrais écrire cette requête moi-même, mais ma seule solution est d'utiliser un très grand nombre de sous-requêtes. Mais je me demande s'il existe un moyen plus efficace et j'espère que les experts SQL ici pourront vous aider ? </p>
Cette requête devrait fonctionner :
Il sert simplement à séparer les valeurs du tableau
sites
和fse
中选择所有记录,并删除在子查询中找不到记录的routes表中的行。需要使用两列的concat,因为in
只能处理一列。|
.DB-Fiddle