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

Développement SQL Server Discussion :

Probleme de jointure et select requette SQL EXPRESS 2005 [2005]


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Par défaut Probleme de jointure et select requette SQL EXPRESS 2005
    Bonjour,

    actuellement étudiant en informatique j'effectue un stage en entreprise ou j'ai le devoir de programmer un soft
    malheureusement je bloque sur un petit problème je vous explique j'ai 2 table


    table 1:


    ID_A | local_identity
    -------|-------------------
    1 | p1
    2 | p2
    3 | p3
    4 | p4
    5 | p5


    et une deuxieme table:

    ID_B | ID_PARK | ID_A | etat
    ------|---------------------------------
    3001| 96 | 1 | true
    3002| 100 | 2 | true
    3003| 96 | 3 | false
    3004| 100 | 4 | true
    3005| 96 | 5 | false




    le but de ma requête et d'avoir tout les ID_A ou les ID_PARK correspond a l' ID_A choisie ( pas très simple a expliquer )

    exemple: je choisie dans la table 1 le P3
    donc avec une jointure avec la table 2 je sais que l'ID_PARK de l'ID_A '3' est egal a 96
    et moi je voudrais que au final il me retourne donc tout les ID_A avec un ID_PARK a 96 et ou l'etat est TRUE


    je cherche depuis tout a l'heure mais je n'arrive pas a trouver et donc mon soft n'avance pas


    Merci d'avance pour l'aide que vous pourrez m'aporter

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    Citation Envoyé par kilirt Voir le message
    donc avec une jointure avec la table 2 je sais que l'ID_PARK de l'ID_A '3' est egal a 96

    Alors, vous avez déjà fait la moitié du travail !
    Il vous reste à ajouter une nouvelle jointure sur la table 2 (donc auto-jointure) avec la condition portant sur ID_PARK.

    Comme vous aurez deux fois la même table dans la requête, il faudra utiliser des alias pour les distinguer.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Par défaut
    Bonjour,


    j'ai tout essayer mais je suis toujours bloquer avec mon local_identity = '*****'
    qui me retourne une seul ligne

    j'ai essayer les sous requête / auto jointure mais je ne maitrise pas du tout ce domaine du coup cela me retourne toujours un seul valeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    select 
    aup.id_A,
    local_identity,
    ID_PARK,
    etat
    from
    table1,
    table2 as aup
    where
    local_identity = 'p1'
    and aup.id_A = table1.id_A
    and EXISTS
    (
    SELECT aup2.id_A,id_park,etat
    FROM table1,table2 as aup2
    where aup2.id_park = aup.id_park
    )

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    quelque chose comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT 
    		aup2.id_A,
    		local_identity,
    		aup2.ID_PARK,
    		aup2.etat
    FROM		table1
    INNER JOIN 	table2 as aup
    	ON		aup.id_A = table1.id_A
    INNER JOIN	table2 aup2
    	ON		up2.ID_PARK = aup.ID_PARK
    WHERE		local_identity = 'p1'

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Par défaut
    Merci je sais que vous aimez pas donner la solution directement mais sa ma beaucoup aider ^^
    Bonne journée

    Citation Envoyé par aieeeuuuuu Voir le message
    quelque chose comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT 
    		aup2.id_A,
    		local_identity,
    		aup2.ID_PARK,
    		aup2.etat
    FROM		table1
    INNER JOIN 	table2 as aup
    	ON		aup.id_A = table1.id_A
    INNER JOIN	table2 aup2
    	ON		up2.ID_PARK = aup.ID_PARK
    WHERE		local_identity = 'p1'

    EDIT: il y aurais un moyen d'afficher le local_identity de chaque id_A que j'affiche car la sa affiche le meme local_identity 'p1' pour chaque id_A ?

  6. #6
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    oui, en ajoutant une nouvelle jointure sur table1

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 373
    Par défaut
    Citation Envoyé par kilirt Voir le message
    Bonjour,


    j'ai tout essayer mais je suis toujours bloquer avec mon local_identity = '*****'
    qui me retourne une seul ligne

    j'ai essayer les sous requête / auto jointure mais je ne maitrise pas du tout ce domaine du coup cela me retourne toujours un seul valeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    select 
    aup.id_A,
    local_identity,
    ID_PARK,
    etat
    from
    table1,
    table2 as aup
    where
    local_identity = 'p1'
    and aup.id_A = table1.id_A
    and EXISTS
    (
    SELECT aup2.id_A,id_park,etat
    FROM table1,table2 as aup2
    where aup2.id_park = aup.id_park
    )
    Le résultat est logique vu le contenu de la table. Le "and" ne fait que sélectionner l'intersection. Ou peut-être tu as mal exprimé ta préoccupation.

    Merci.

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

Discussions similaires

  1. [VS2005][WCE] Connexion en RDA à une base SQL EXPRESS 2005
    Par dacid dans le forum Windows Mobile
    Réponses: 7
    Dernier message: 16/11/2006, 18h58
  2. Réponses: 2
    Dernier message: 07/10/2006, 19h46
  3. Installation SQL Express 2005
    Par m-mas dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/08/2006, 14h26
  4. sql express 2005 cree une bd
    Par rabi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/06/2006, 12h21
  5. MS SQL Express 2005... Connection de ExpressManager / Server
    Par papouAlain dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 18/03/2005, 18h48

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