IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Jointure deux tables


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 39
    Points : 48
    Points
    48
    Par défaut Jointure deux tables
    Bonjour,

    Je souhaite joindre deux tables avec deux champs.

    Dans la premiere table le champ A contient par exemple des numéros uniques.
    Exemples de contenu :
    TABLE 1
    Ligne 1: Champ A = 'A123'
    Ligne 2 :Champ A = 'C456'

    Dans la seconde table le champ B est une chaine de caractère dans le lequel à n'importe quel endroit peu se trouver l'équivalent du numéro du champ A de la table 1.
    exemple de contenu :
    TABLE 2
    Ligne 1 :Champ B = 'Zetruni C456 julind'
    Ligne 2 : Champ B = 'Octbgt A123 ijul'

    je ne peux pas faire de jointure par Table1.champA = Table2.champB, puisque le champ B contient d'autres informations. la jointure pourrait ressembler à un like, mais je ne vois pas comment résoudre cette question.

    Merci d'avance pour votre aide.

    LJOSSE

  2. #2
    Membre régulier Avatar de SetaSensei
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 104
    Points
    104
    Par défaut
    Bonjour,

    Mon point de vue avec mes connaissances qui valent ce qu'elles peuvent :

    L'idéal serait de créer dans la table B une colonne supplémentaire contenant la clé "sortie" de la chaîne que vous avez dans votre colonne de base. Je dirai même que c'est la solution à retenir. Enfin si vous savez comment récupérer cette clé dans la chaîne évidemment.
    La solution "plombage de temps d'exécution" serait du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select *
    from
    tableA a inner join
    tableB b on b.ID LIKE '%' + a.ID + '%'
    Mais là, attendez-vous à une multiplication de votre temps d'exécution.

    Sinon, il reste la solution "lourde" d'un FullTextSearch, le temps de réponse sera amélioré (mais toujours en deçà de la première solution) et le serveur sera un peu plus utilisé en "live" pour la mise à jour des tables du FTS.


    EDIT : Je viens de tester la seconde solution "pour rire" ... A éviter absolument : plus de 6 minutes sur une requête à 18K résultats (j'ai arrêté l'exécution avant la fin) !

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 565
    Points
    52 565
    Billets dans le blog
    5
    Par défaut
    C'est le conséquence évidente d'une mauvaise modélisation de la base de données :
    VIOL de la 1ere forme normale :
    Toute données dans une base de données doit être atomique, c'est à dire ne pas contenir plusieurs information.

    En violant les principes mêmes qui régissent la modélisation relationnelles, vous ne faites plus du SGBDR, vous faites du traitement de fichier à la CoBol !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Requête jointure deux tables et affichage tableau des données.
    Par Michel56 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 03/05/2017, 12h33
  2. Jointure deux tables
    Par amazyo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 22/06/2013, 23h32
  3. [MySQL] jointure deux table et moteur de recherche
    Par speedylol dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/12/2012, 20h52
  4. Jointure entre deux tables et résultat
    Par Asdorve dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/06/2004, 14h50
  5. 2 Count() sur deux tables en jointures gauches
    Par Alexandre T dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/09/2003, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo