Comparer 2 chaines avec SQL [Résolu]

Signaler
Messages postés
166
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
25 octobre 2011
-
Messages postés
166
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
25 octobre 2011
-
Bonjour,


je suis entrain de développer une application sous vb6 et je veux faire une reqête sql dont elle fait la comparaison de 2 chaînes qui appartiennent à 2 différentes tables access, je veux afficher tous les clients de la table client qui ont un prenom (ou une partie de prenom ) dans les prenoms qui existent dans la table cible (2ème table).


j'ai fais ma requête comme suit mais elle est lente en exécution:


select client.nom, client.prenom, client.tel from client, cible where (instr(1,client.prenom,cible.prenom)<>0);




Est ce que ma req est juste?
Il y a t il une solution plus rapide?


MERCI D'AVANCE.

.

11 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
(désolé du double post)
ou LIKE '%client.prenom%' si nécessaire
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
salut

si instr > 0 c'est que CIBLE est contenu dans CLIENT (les prénoms évidemment)donc VRAI pour CLIENT Jean-Paul, et CIBLE "Paul", pas l'inverse

la requête sera plutôt :
SELECT client.nom, client.prenom, client.tel FROM client, cible WHERE cible.prenom LIKE '%client.prenom';

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Messages postés
166
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
25 octobre 2011

Merci PCPT je veux l'essayer

.
Messages postés
166
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
25 octobre 2011

Mais a koi sert les cotes apres LIKE?

client.prenom est une valeur a consulter de la table Client
.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
google -> syntaxe sql LIKE

http://www.netalya.com/fr/sql.asp

L'instruction LIKE s'emploie avec WHERE pour rechercher des enregistrements comprenant une chaîne. Elle utilise le signe %

<dir>L'exemple ci-dessous recherche les adresses qui commencent par W dans la table contact </dir>SELECT adresse FROM contact WHERE adresse LIKE 'W%'

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Messages postés
166
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
25 octobre 2011

ma requete ne donne aucun resultat, malgre les table sont remplit par des milliers des donnees.

.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
y'a peut-être une jointure à faire... :)

la seule info que tu nous aies donné est "une requête sql sous vb6 sur 2 tables access"
quand tu executes la requête donnée directement dans access, çà donne quoi?

et tu as bien pris en compte la première partie de mon premier message?

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Messages postés
166
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
25 octobre 2011

oui, j'ai ecri la requete sous access directement comme tu l'as indique, mais sans resultat, Est ce que le pbl  est la jointure?

SELECT client.nom, client.prenom, client.tel
FROM client INNER JOIN cible ON client.Prenom = cible.prenom
WHERE cible.prenom LIKE '%client.prenom%';
 

.
Messages postés
166
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
25 octobre 2011

0 Ligne selectionnee lorsque j'applique cette requette sous access

.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
sans le WHERE il y a des résultats?
Messages postés
166
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
25 octobre 2011

Oui, il y a plusieurs lignes, j'ai teste ca dans access

.