Bonjour les amis,

J'espere que vous allez bien.

Je travaille sur un petit projet de base de donnée SQL sur XAMPP Version 7.4.3, j'ai 2 tables avec la structure suivante
(Les donnés ci dessous sont écrits et générés au hasards et ne représente pas des vrais donnés)

Table 1 nommée "Client à jour" contenant les donnés à jours des clients, et table 2 nommée Clients contenant les donnés actuels des clients (qui peuvent ne pas être à jour)

Clients_a_jour:
ID_Client Nom_Complet Adresse Telephone Commentaire
2 François Dupond 2 rue Jean Lampo 0600000001
3 Eric Martin 11 Rue alber reville 0700000001
4 Jean Dubois 16 boulevard marechal 0700990099
6 Amanda Laux 22 boulevard de paris 0700990009


Clients:
ID_Client Nom_Complet Adresse Telephone Commentaire
1 Daniela Jack 13 Rue Jambo 0600000002
3 Eric Martin 6 Rue jean jack 0700000001
4 Jean Dubois 16 boulevard marechal 0700990099
5 Adam Travesa 76 boulevard d'italy 0700990010

Je souhaite créer une requête qui fera la comparaison des champs des 2 tables afin de remplir le champ "Commentaire" des 2 table en fonction si le client est un nouveau client (c'est à dire il existe dans la table Clients_a_jour et non existant dans la table Clients), client existant dans les 2 tables mais ses données doivent être modifiés, ou un client qui doit être supprimé (existant dans la table Clients mais non existant dans la table Clients_a_jour, et avoir un résultat comme suit :


Clients_a_jour:
ID_Client Nom_Complet Adresse Telephone Commentaire
2 François Dupond 2 rue Jean Lampo 0600000001 Nouveau Client
3 Eric Martin 11 Rue alber reville 0700000001 Client à modifier
4 Jean Dubois 16 boulevard marechal 0700990099 Aucune modification nécessaire
6 Amanda Laux 22 boulevard de paris 0700990009 Nouveau client


Clients:
ID_Client Nom_Complet Adresse Telephone Commentaire
1 Daniela Jack 13 Rue Jambo 0600000002 Client à supprimer
3 Eric Martin 6 Rue jean jack 0700000001
4 Jean Dubois 16 boulevard marechal 0700990099
5 Adam Travesa 76 boulevard d'italy 0700990010 Client à supprimer

PS: La clé de détermination du client est ID_Client

J'ai donc écris les 2 requêtes suivantes

Requête 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
--Remplir le champ "Commentaire" de la table "Clients_a_jour"
update `Clients_a_jour`
left join `Clients`
             on  Clients.Id_Client = Clients_a_jour.id
 
            set  Clients_a_jour.`commentaire` = case        when Clients.Id_Client  = Clients_a_jour.Id_Client 
                                                              and Clients.Adresse  = Clients_a_jour.Adresse 
                                                              and Clients.Telephone  = Clients_a_jour.Telephone 
                                                              then 'Aucune modification nécessaire'
 
                                                              when Clients.Id_Client  = Clients_a_jour.Id_Client 
                                                              or Clients.Adresse  <> Clients_a_jour.Adresse 
                                                              or Clients.Telephone  <> Clients_a_jour.Telephone 
                                                              then 'Client à modifier'
 
                                                              when Clients.Id_Client is null                       
                                                              then 'Nouveau Client'  
end
Requête 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
--Remplir le champ "Commentaire" de la table "Clients"
update `Clients`
left join `Clients_a_jour`
             on  Clients_a_jour.Id_Client = Clients.Id_Client
 
            set  Clients.`statut` = case when Clients_a_jour.Id_Client is null then 'Client à supprimer'  end
Les 2 requêtes fonctionnent très bien, sauf que quand il s'agit des donnés avec 100000 lignes (100000 clients dans les 2 tables), la requête mes du temps pour qu'elle s’exécute (environ 90 minutes)

J'ai essayé de créer une nouvelle colonne "Concat" pour concaténer l'adresse et le numéro de téléphone et déterminer comparer uniquement la colonne concat au lieu de comparer les 2 colonnes adresse et telephone, mais la requête prends la même durée pour s’exécuter

Pourriez vous s'il vous plait m'aider à trouver une autre requête qui peut me générer ce mémé résultat dans quelques minutes ?