Bonjour,
je ne suis pas un spécialiste SQL alor je requiert votre aide.
Je dois faire une jointure sur une table mais uniquement sur le début de la clé.
La requête ainsi formulée renvoie le résultat voulu mais la table B contient près de 300000 enregistrements d'ou temps de réponse 3 minutes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select A1, B1 from A left join B on left(B2,6)=left(A1,6)
Si j'ai bien compris, la présence du left empêche l'utilisation de l'index existant sur le champ B2.
J'ai essayé sans succès d'autres méthode du type:
mais sans succès.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select A1, B1 from (select A1, concat(A1,'00000') as j1, concat(A1,'99999') as j2 from A) as T left join B on B2 Between j1 and j2
Quelqu'un peut-il me donner une idée ?
Merci.
Partager