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 S.2000] Jointure et top


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 154
    Par défaut [SQL S.2000] Jointure et top
    Bonjour à tous, un petit soucis de forme:

    Je fais une requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT * 
    FROM a
    LEFT JOIN (SELECT * FROM B) as B ON 1=1
    WHERE XXXX
    Le problème est que ma table B me renvoi 4 lignes, du coup ma requête globale renvoi elle aussi 4 lignes.

    Je veux donc limiter la table B à une ligne. Je fait donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT * 
    FROM a
    LEFT JOIN (SELECT top 1 * FROM B ORDER BY ID DESC) as B ON 1=1
    WHERE XXXX
    Ma requête globale me renvoi bien une seule ligne, mais tous les champs issus de B sont à null….

    De plus si je mets top 2, je n’ai tjs qu’une seule ligne à null.

    Si qq’un à une idée sur comment faire ca, je suis preneur.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 64
    Par défaut SQL avec jointure
    pour n'avoir qu'un enregistrement avec ton LEFT JOIN, il faudrait une clé unique entre tes 2 fichiers.

    Donne un exemple précis d'enregistrements dans les 2 tables, histoire de voir ton problème de plus près.

    Fred

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 154
    Par défaut
    J'ai bien sur simplifier.

    Vous pouvez remplacer ON 1=1 par A.ID=B.ID

    Ca ne change rien au problème malheureusement.

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    et pourquoi tu ne fais pas le top sur la table A au lieu de B?

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 154
    Par défaut
    Et bien pour être plus concret. La table A renvoi 10 enregistrements.

    Seulement pour chaque enregistrement, la table B m'en renvois 2.

    au final je me retrouve donc avec 20 enregistrement au lieu de 10.

    Si je met top1 sur la table A elle ne renverra que 1 seul enregistrement et pas les 10 que je veux.

  6. #6
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    bah fait une simple jointure alors? en fait il faut que tu refasses ta requete et voir ce que tu veux exactement.

Discussions similaires

  1. [SQL SERVER 2000] UPDATE avec jointure
    Par Jsh dans le forum Développement
    Réponses: 2
    Dernier message: 23/01/2009, 10h08
  2. [SQL server 2000] Problème de jointure avec 'Case'
    Par Tankian dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/06/2006, 17h42
  3. [SQL server 2000] jointures de 3 tables
    Par batosai dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/04/2006, 09h45
  4. Réponses: 16
    Dernier message: 14/04/2006, 18h38
  5. [ms sql server 2000] top 1 dans une condition de jointure ?
    Par sylvkin dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/10/2005, 17h10

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