Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
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 31/03/2011, 12h35   #1
Futur Membre du Club
 
Homme Fitriansyah
Inscription : octobre 2006
Messages : 42
Détails du profil
Informations personnelles :
Nom : Homme Fitriansyah
Âge : 29
Localisation : Belgique

Informations forums :
Inscription : octobre 2006
Messages : 42
Points : 15
Points : 15
Par défaut Probleme requete multitables

Bonjour tout le monde, j'ai qq problème pour afficher les données provenant de plusieurs tables. Je dispose 2 tables tProduits et tProdSpecials (c'est une table pour des articles qui sont en promotion). mon problème c'est que je n'arrive pas créer une requête pour afficher les articles qui sont en promotions y compris les articles qui ne sont pas en promotion.
J'ai réussi a crée une requête pour afficher uniquement les articles qui sont en promotion en faisant ceci:
Code :
1
2
3
4
5
6
7
8
 
SELECT S.*,
P.modelProduit,
P.imgProduit,
P.prixUnitaire,
P.descriptionProduit 
FROM tProdSpecials S INNER JOIN tProduits P 
ON S.idProduit = P.idProduit
et voici mon schéma de mes tables qui se trouve dans la pièce jointes. Merci d'avance
Images attachées
Type de fichier : png Capturer.PNG (15,2 Ko, 5 affichages)
FITRI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 14h17   #2
Expert Confirmé Sénior
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Citation:
afficher les articles qui sont en promotions y compris les articles qui ne sont pas en promotion
C'est donc la liste de tous les articles, non ?
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 23h28   #3
Futur Membre du Club
 
Homme Fitriansyah
Inscription : octobre 2006
Messages : 42
Détails du profil
Informations personnelles :
Nom : Homme Fitriansyah
Âge : 29
Localisation : Belgique

Informations forums :
Inscription : octobre 2006
Messages : 42
Points : 15
Points : 15
Citation:
Envoyé par qi130 Voir le message
C'est donc la liste de tous les articles, non ?
Oui exactement, mais puisque la table tProduits est en relation avec la table de tProdSpecial alors j'aimerais d'afficher les articles qui sont en promotions y compris les articles qui ne le sont pas. Merci
FITRI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2011, 01h01   #4
Membre confirmé
 
Inscription : novembre 2007
Messages : 134
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 134
Points : 213
Points : 213
Bonjour,
Regardez tout simplement du coté des jointures externes, dans le cas présent une jointure droite avec LEFT OUTER JOIN, vous aurez ainsi tous les enregistrements de la table produit et les informations sur les promotions pour les produits présents dans la table des promos.
http://dev.mysql.com/doc/refman/5.0/fr/join.html
Bon courage
patic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2011, 08h37   #5
Futur Membre du Club
 
Homme Fitriansyah
Inscription : octobre 2006
Messages : 42
Détails du profil
Informations personnelles :
Nom : Homme Fitriansyah
Âge : 29
Localisation : Belgique

Informations forums :
Inscription : octobre 2006
Messages : 42
Points : 15
Points : 15
Citation:
Envoyé par patic Voir le message
Bonjour,
Regardez tout simplement du coté des jointures externes, dans le cas présent une jointure droite avec LEFT OUTER JOIN, vous aurez ainsi tous les enregistrements de la table produit et les informations sur les promotions pour les produits présents dans la table des promos.
http://dev.mysql.com/doc/refman/5.0/fr/join.html
Bon courage
Ça à l'air de marcher. Merci beaucoup
FITRI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2011, 11h14   #6
Membre confirmé
 
Inscription : novembre 2007
Messages : 134
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 134
Points : 213
Points : 213
Pardon, j'étais fatigué, j'ai dis une jointure droite donc RIGHT OUTER JOIN.
Si on reprend votre requête cela donne :

Code :
1
2
3
4
5
 
SELECT S.*
,P.modelProduit,P.imgProduit,P.prixUnitaire,P.descriptionProduit 
FROM tProdSpecials S 
RIGHT OUTER JOIN tProduits P ON S.idProduit = P.idProduit
Je vous invite à potasser des livres sur sql car il s'agit de base et il faut absolument que vous les compreniez. Avec un peu d'huile de coude vous verrez que ce n'est pas si compliqué, regardez la rubrique "Livres" sur le site, pour ma part je vous conseille "Apprendre le SQL avec Mysql" de C. Soutou, il est pas mal quand on débute.
patic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 08h27   #7
Futur Membre du Club
 
Homme Fitriansyah
Inscription : octobre 2006
Messages : 42
Détails du profil
Informations personnelles :
Nom : Homme Fitriansyah
Âge : 29
Localisation : Belgique

Informations forums :
Inscription : octobre 2006
Messages : 42
Points : 15
Points : 15
Encore merci.
FITRI 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 03h50.


 
 
 
 
Partenaires

Hébergement Web