Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

« INNER JOIN ON »

12 réponses
Avatar
Philippe Dhondt
Bonjour



Comment faire un INNER JOIN ou l'on ne cherche pas une concordance parfaite
entre les deux champs utilisés mais où une concordance partielle est
suffisante ?



Je m'explique avec un exemple :



SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo

FROM [T_SBF_250]

INNER JOIN [T_GOU_Titre] ON [T_SBF_250].Nom = [T_GOU_Titre].Titre

ORDER BY [T_GOU_Titre].Titre;



Dans cet exemple, seuls les enregistrements où le champ « [T_SBF_250].Nom »
est rigoureusement identique au champ « [T_GOU_Titre].Titre » sont
sélectionnés. Or, ce qui m'intéresse, c'est de selectionner tous les
enregistrements pour lesquels il y a au minimum trois lettres consecutives
qui sont identiques.





Merci à toutes et tous





Philippe Dhondt

2 réponses

1 2
Avatar
Philippe Dhondt
Merci pour ces premières pistes que je vais tester.



« Sacré problème », hélas ...



Je vais essayer de le reformuler

Je dois mettre à jour les données d'une table A avec celles d'une table B

Les 2 tables contiennent un même champ (texte) « Titre »

C'est ce champ qui sert de cle commune aux données des deux tables

Le problème est que l'ortographe du contenu de ce champ est très souvent
(80%) différent : problème d'accent, de ponctuation ...



Si quelqu'un a une autre idée.....








"Philippe Dhondt" wrote in message
news:KMZbf.226$
Bonjour



Comment faire un INNER JOIN ou l'on ne cherche pas une concordance
parfaite

entre les deux champs utilisés mais où une concordance partielle est
suffisante ?



Je m'explique avec un exemple :



SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo

FROM [T_SBF_250]

INNER JOIN [T_GOU_Titre] ON [T_SBF_250].Nom = [T_GOU_Titre].Titre

ORDER BY [T_GOU_Titre].Titre;



Dans cet exemple, seuls les enregistrements où le champ «
[T_SBF_250].Nom »

est rigoureusement identique au champ « [T_GOU_Titre].Titre » sont
sélectionnés. Or, ce qui m'intéresse, c'est de selectionner tous les
enregistrements pour lesquels il y a au minimum trois lettres consecutives
qui sont identiques.





Merci à toutes et tous





Philippe Dhondt






Avatar
Fred BROUARD
En SQL Normatif cela donne :

SELECT S.Code, S.Nom, G.Titre, G.Yahoo
FROM T_SBF_250 AS S
INNER JOIN T_GOU_Titre AS G
ON S.Nom LIKE SUBSTRING(G.Titre FROM 1 FOR 3) +'%'
ORDER BY G.Titre

Avec le pseudo SQL d'acces cela devrait donner :

SELECT S.Code, S.Nom, G.Titre, G.Yahoo
FROM T_SBF_250 AS S
INNER JOIN T_GOU_Titre AS G
ON S.Nom LIKE SUBSTRING(G.Titre, 1, 3) +'*'
ORDER BY G.Titre

A +

Philippe Dhondt a écrit:
Bonjour



Comment faire un INNER JOIN ou l'on ne cherche pas une concordance parfaite
entre les deux champs utilisés mais où une concordance partielle est
suffisante ?



Je m'explique avec un exemple :



SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo

FROM [T_SBF_250]

INNER JOIN [T_GOU_Titre] ON [T_SBF_250].Nom = [T_GOU_Titre].Titre

ORDER BY [T_GOU_Titre].Titre;



Dans cet exemple, seuls les enregistrements où le champ « [T_SBF_250].Nom »
est rigoureusement identique au champ « [T_GOU_Titre].Titre » sont
sélectionnés. Or, ce qui m'intéresse, c'est de selectionner tous les
enregistrements pour lesquels il y a au minimum trois lettres consecutives
qui sont identiques.





Merci à toutes et tous





Philippe Dhondt






--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************

1 2