Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/03/2011, 11h10   #1
Membre actif
 
Homme
Inscription : septembre 2009
Messages : 167
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : septembre 2009
Messages : 167
Points : 162
Points : 162
Par défaut Problème de jointure?

Bonjour,

Je rencontre un problème pour une requête. Je vais tenter d'être suffisamment clair pour expliquer mon problème:

J'ai une table Article avec les informations de l'ensemble de mes articles. Un article peut être substitué par un autre. J'ai donc une table Substituants qui a comme champ ID_Article, ID_Substituant, ID_Site. Qui permet donc de savoir quel article est substitué par quel substituant et sur quel site.

Je voudrais retourner une liste qui contient l'ID de l'article Substitué, son nom ainsi que son substituant et le nom de ce dernier.
Bien entendu le substituant est un article de ma table article.


J'ai essayé plusieurs choses dont Jointure multiple comme
Code :
1
2
3
SELECT        *
FROM            Article INNER JOIN
                         Substituants ON Article.ID_Article = Substituants.ID_Article AND Article.ID_Article = Substituants.ID_Substituant
Ou requête imbriquée comme
Code :
1
2
3
4
SELECT   Article.ID_Article, Nom_Article, Nom     
FROM             Article, (SELECT Nom_Article AS Nom 
					FROM Article INNER JOIN 
					Substituants ON Substituants.ID_Substituant =  Article.ID_Article) result, Substituants
Mais dans le premier cas je n'ai rien en sortie (sauf si je mets dans la table substituants un ID_Substituant égal à ID_Article)

Dans le deuxième cas, j'ai tous les Articles de ma table Article

Vous auriez une idée?

(PS : désolé si ce n'est pas la bonne section)
papouuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 13h19   #2
Modérateur
 
Avatar de sevyc64
 
Homme Yves
Développeur informatique
Inscription : janvier 2007
Messages : 3 878
Détails du profil
Informations personnelles :
Nom : Homme Yves
Âge : 39
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : janvier 2007
Messages : 3 878
Points : 7 655
Points : 7 655
Je pense que tu t'y prend mal.

Puisque tu veux des informations sur les substituants et substitués, autant partir de la table Substituant, avec derrière une double jointure sur la table article :

Code :
1
2
3
4
SELECT A1.ID_Article AS IdSubstitué, A1.Nom_Article AS NomSubstitué, A2.ID_Article AS IdSubstituant, A2.Nom_Article AS NomSubstituant
FROM Substituants S
INNER JOIN Article A1 ON S.ID_Article=A1.ID_Article
INNER JOIN Article A2 ON S.ID_Substituant=A2.ID_Article
__________________
Sevyc64 --- Le partage est notre force

NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS
sevyc64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 13h37   #3
Membre actif
 
Homme
Inscription : septembre 2009
Messages : 167
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : septembre 2009
Messages : 167
Points : 162
Points : 162
En effet, cela me retourne bien les bonnes données. Merci

J'ai encore du mal avec Sql dès que ca devient un peu particulier, je n'aurais pas pensé à faire la double jointure sur Article, je pensais que ca ne passerait pas.

Merci encore
papouuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h11.


 
 
 
 
Partenaires

Hébergement Web