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 :

[SQL 2000] Faire une jointure d'exclusion


Sujet :

MS SQL Server

  1. #1
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut [SQL 2000] Faire une jointure d'exclusion
    Salut

    J'ai mis en place un arbre à structure intervallaire selon le tuto disponible ici, sur le site. Merci à SQL Pro pour c'et adminirable travail, c'est trop d'la balle atomique pour les performances. Pour l'exemple : les 36683 commune de France remontée (ID + nom) en moins de 2 secondes ! trop fort !

    Bon, maintenant que je me suis bien éclaté, j'ai un souci soit de méconnaissance du langage, soit de manque de recul sur mon problème.

    J'ai mis au point une fonction qui me remonte une table avec un champ qui contient les ID des communes. ça marche bien.

    Ce que je veux faire c'est pouvoir joindre deux tables de ce type en gardant les données de la table de gauche, mais en excluant les donnée de la table de droite, même si elles sont communes.

    Exemple avec des chiffres simples :
    Table Gauche (1,2,3,5,7,10,11)
    Table Droite (2,7,12,13,14,15,16,17)

    Résultat attendu : (1,3,5,10,11) vu que le 2 et le 7 sont dans les tables.
    Donc mon souci c'est que je n'ai aucune idée de par où commencer, j'ai même pas l'embryon d'un début de requête.

    Pouvez vous m'aider ?

  2. #2
    Expert éminent
    Homme Profil pro
    Big Data / Freelance EURL
    Inscrit en
    Mars 2003
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Big Data / Freelance EURL

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 124
    Points : 7 291
    Points
    7 291
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select id
    from Gauche
    not in 
      (
      select id
      from Droite
      )
    y'aurait aussi MINUS mais n'existe pas sous SQL Server 2000

  3. #3
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci pour ton aide.

    Je vais essayer ça, mais j'ai une petite appréhension sur les performances avec le NOT IN. C'est pas un peu gourmand ?

  4. #4
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id
    FROM Gauche g
    LEFT JOIN Droite d ON g.id = d.id
    WHERE d.id IS NULL
    Si tes deux colonnes ID sont indexées, pas de problème de performances

  5. #5
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Vraiment désolé rubid, c'est praeil que pour l'autre topic et pour les mêmes raisons.

    Vraiment, je suis confus.

    En tout cas merci pour ton aide.

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

Discussions similaires

  1. [XL-2007] comment faire une Jointure SQL en excel VBA
    Par Maxim0 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/07/2011, 19h04
  2. [SQL 2000] faire une sorte de pivot
    Par zooffy dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/11/2007, 09h53
  3. [SQL2000] Faire une jointure d'exclusion
    Par zooffy dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/11/2007, 11h24
  4. [CR9] faire une Jointure externe
    Par coldec dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 28/06/2005, 12h10
  5. Débutant SQL, problème sur une jointure censée exclure ??
    Par derfatypik dans le forum Langage SQL
    Réponses: 8
    Dernier message: 22/06/2005, 15h55

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