Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours 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 04/11/2011, 16h46   #1
Nouveau Membre du Club
 
Homme
Administrateur de base de données
Inscription : mai 2011
Messages : 99
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Bâtiment

Informations forums :
Inscription : mai 2011
Messages : 99
Points : 29
Points : 29
Par défaut INNER et LEFT JOIN

Bonjour forum

Je débute en SQL et j'aurais besoin de quelques informations.

J'ai 6 tables; Estimation, FDR, schedule, floor, Municipality, employe

estimation est liée a FDR par IDestimation
FDR est liéee a schedule par IdFDR
Municipality est liée a schedule par IdMunucipality
employe est liée a schedule par Idemploye
floor est liée a schedule par Idfloor

je voudrais savoir comment monter ma requête SQL, pour aller chercher des infos dans chacune de mes tables.

PS: les LEFT JOIN s'aplique sur la table floor et Employe, car il n'u a pas toujours des employé ou des floor cédulé. J'ai joint un schéma des table en PJ

Merci d'avance!
Fichiers attachés
Type de fichier : xls Jointure.xls (14,0 Ko, 1 affichages)
Beaudelicius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 16h48   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 641
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 641
Points : 2 634
Points : 2 634
Bonjour,

quand on débute on lit les tutos :

Le select : http://sqlpro.developpez.com/cours/sqlaz/select/
Les jointures : http://sqlpro.developpez.com/cours/sqlaz/jointures/

Ensuite revenez avec vos essais si vous bloquez, mais logiquement vous devriez vous en sortir sans trop de problème.
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 19h46   #3
Nouveau Membre du Club
 
Homme
Administrateur de base de données
Inscription : mai 2011
Messages : 99
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Bâtiment

Informations forums :
Inscription : mai 2011
Messages : 99
Points : 29
Points : 29
Merci pour les liens,

J'ai lu et j'ai monté ma chaîne SQL selon l'exemple donné dans le document, mais elle ne fonctionne pas ; elle ne renvoie aucun résultat, je dois donc avoir une erreur, mais je ne la trouve pas!

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT sch.prodstatusid, sch.prodstatusid2, q.sonbralt, p.Name, s.sitecode, sch.deliveryno, sch.floorid, sch.location, sch.amount, sch.schdate, sch.deliverydate, c.shortname, r.c_address, m.descr, sch.rsschdtlid, schwc.nbhours, r.littletruckbit, r.includedcrane, r.noincludedcrane, r.rolloff, r.zone2, r.normaldelivery, r.steeldelivery, r.escort, r.restrictedaccess, r.elsewhereprov, sch.stocksiteid 
                FROM rsscheduledtl sch 
                    INNER JOIN rsscheduledtlwc schwc ON sch.rsschdtlid = schwc.rsschdtlid 
                        INNER JOIN workcenter w ON schwc.wcid = w.wcid 
                    INNER JOIN Sites s ON sch.siteid = s.siteid 
                    INNER JOIN Products p ON sch.prodid = p.prodid 
                    LEFT JOIN floorhdr f ON sch.floorid = f.floorid 
                    INNER JOIN roadsheet r ON sch.roadsheetid = r.roadsheetid 
                        INNER JOIN QOHdr q ON r.qonbr = q.qonbr 
                            INNER JOIN Municipality m ON q.municipalityid = m.municipalityid 
                            INNER JOIN Customers c ON q.custid = c.custid 
                WHERE sch.prodstatusid IN  (" & IdStatus & ") 
                AND sch.deliverydate = '" & dateliv & "' 
                AND sch.isactive = 1 
                AND schwc.wcid = 1
merci de votre aide!
Beaudelicius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 21h02   #4
Membre Expert
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 092
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 092
Points : 1 898
Points : 1 898
Bonjour,
Sans jeu d'essai, difficile de dire pourquoi la requête ne renvoie rien.
Peut-être que tu peux supprimer la clause where, et voir ce que ça donne.

Tatayo.
tatayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 23h04   #5
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
Regarde notamment si tes variables sont bien valorisées en affichant la requête réelle avant envoi au serveur.

Et si la suppression du WHERE ne donne toujours pas de résultat, reprend la requête en ajoutant petit à petit chaque jointure et en testant à chaque fois. Tu trouveras ainsi quelle jointure ne donne plus aucune donnée.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2011, 14h47   #6
Nouveau Membre du Club
 
Homme
Administrateur de base de données
Inscription : mai 2011
Messages : 99
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Bâtiment

Informations forums :
Inscription : mai 2011
Messages : 99
Points : 29
Points : 29
Ok Merci ça fonctionne, mauvais format dans la date

Merci à vous!!
Beaudelicius 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 06h12.


 
 
 
 
Partenaires

Hébergement Web