|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Laurent Développeur informatique Inscription : juin 2011 Messages : 4 ![]() |
Bonjour à tous.
Nouveau sur le forum et débutant en SQL, j'ai eu beau faire des recherches je n'ai pas trouvé la réponse à mon soucis que doivent pourtant rencontrer tous les développeurs... Je vous prie de m'excuser si le sujet a déjà été traité. 2 Tables CLIENTS IDCLIENTS mediumint(9) AUTO_INCREMENT NOMCLI char(100) CODFAMI char(5) FAMILLES IDFAMILLE mediumint(9) AUTO_INCREMENT CODFAMI char(5) LIBFAMILLE char(100) Afin d'obtenir la liste des clients avec le libellé de la famille de chacun d'eux je fais : Code :
SELECT CLIENTS.NOMCLI, FAMILLES.LIBELLE, CLIENTS.IDCLIENTS FROM CLIENTS, FAMILLES WHERE FAMILLES.CODFAMI = CLIENTS.CODFAMI Comment dois-je m'y prendre pour faire apparaitre aussi ces deux enregistrements ? Je remercie par avance les âmes charitables qui sauront m'instruire
|
|
|
00
|
|
|
#2 |
![]() ![]() |
Faites une petite recherche sur les jointures externes !
__________________
Email : http://scr.im/waldar |
|
10
|
|
|
#3 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 954 ![]() |
Commencez aussi par faire de vraies jointures et non un salmigondis de projection, produit cartésien et restrictions.
les jointures se font avec JOIN suivi d'un prédicat introduit par ON. A lire : http://sqlpro.developpez.com/cours/s...ointures/#LIII Commencez donc pas apprendre SQL. mon livre, comme mon site web est fait pour vous aider ! A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
15
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Laurent Développeur informatique Inscription : juin 2011 Messages : 4 ![]() |
Merci pour cette aide.
Etes-vous toujours aussi gais et chaleureux ? Heureusement que je me suis préalablement excusé d'être nul en SQL... Excusez-moi cette fois-ci pour le bruit. |
|
|
30
|
|
|
#5 |
|
Membre Expert
![]() Pacman PacmanBusiness analyst Inscription : juin 2004 Messages : 1 417 ![]() |
Salut !
On n'est pas tous comme ça, t'inquiète Et puis tu peux lui mettre un pouce vers le bas (en bas à droite) si tu trouve son attitude discourtoise ou autre... (non pas que ça serve à grand chose, mais ça défoule) Quoi qu'il en soit, courage pour l'apprentissage du SQL !
__________________
(c'est ma photo) Paku, Paku ! Pour les jeunes incultes : non, je ne suis pas un pokémon... Le pacblog : http://pacmann.over-blog.com/ |
|
30
|
|
|
#6 | |
|
Membre habitué
![]() Robert LabrousseDéveloppeur décisionnel Inscription : février 2009 Messages : 79 ![]() |
Bonjour,
La requête que vous avez écrit est de la norme SQL1, alors que le JOIN ... ON c'est du SQL2 (arrêtez moi si je me trompe). Donc, les 2 requêtes sont possibles c'est en tout cas ce que l'on m'a toujours dit. Avez-vous trouvez la solution ?
__________________
Citation:
|
|
|
|
00
|
|
|
#7 | |
![]() ![]() |
Citation:
Hélas, certains n'ayant pas cet âge apprennent encore en premier une syntaxe révolue depuis avant leur naissance !
__________________
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 ! |
|
|
21
|
|
|
#8 |
|
Membre actif
![]() Benoit RoccoInscription : décembre 2009 Messages : 87 ![]() |
Au risque de passer pour un vieux (j'ai que 32 ans
), si vous tenez absolument à utiliser l'ancienne norme, la syntaxe est de remplace le "=" dans le where par soit "*=", soit "=*" en fonction du coté vers lequel on souhaite avoir toutes les lignes. Dans votre exemple ca donne : Code :
WHERE FAMILLES.CODFAMI =* CLIENTS.CODFAMI PS : je tiens à préciser que ce n'est pas parce que je connais cette syntaxe que je l'utilise encore |
|
|
11
|
|
|
#9 |
![]() ![]() |
Ça dépend du SGBD !
__________________
Email : http://scr.im/waldar |
|
10
|
|
|
#10 |
|
Membre actif
![]() Benoit RoccoInscription : décembre 2009 Messages : 87 ![]() |
Ah désolé, ça c'est sous SQL Server
|
|
|
10
|
|
|
#11 | ||
|
Candidat au titre de Membre du Club
![]() Laurent Développeur informatique Inscription : juin 2011 Messages : 4 ![]() |
Ah bah voila qui est plus sympa
Merci à vous tous de votre aide. Le tuto indiqué par SQLpro est merveilleux MerciJe précise au passage que jusqu'à maintenant je m'étais débrouillé avec la doc en ligne de MySQL 5... Voila le style de requête qui se trouve maintenant dans mon code : Code :
Cette syntaxe vous semble-t-elle correcte ou améliorable ? |
||
|
|
10
|
|
|
#12 |
![]() ![]() |
Tu n'as pas besoin du WHERE puisqu'il contient la condition de jointure figurant déjà après le ON de la jointure ou une condition de nullité sur la famille, ce qui est implicite par la jointure externe gauche.
Si tu peux changer la structure de la BDD, normalement, ce n'est pas le code famille qui devrait figurer dans la table clients mais l'identifiant de la famille. Et la jointure de ta requête devrait donc être faite sur l'égalité de cet identifiant.
__________________
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 ! |
|
10
|
|
|
#13 | |||
|
Candidat au titre de Membre du Club
![]() Laurent Développeur informatique Inscription : juin 2011 Messages : 4 ![]() |
Oui en effet CinePhil
MerciJ'ai corrigé mon code en conséquence et le résultat est top. La requête est donc : Code :
Citation:
En tous cas merci à tous de votre aide sur ce sujet. |
|||
|
|
00
|
|
|
#14 | |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 954 ![]() |
Citation:
Lisez l'article que j'ai écrit à ce sujet : http://blog.developpez.com/sqlpro/p5...-et-le-nouvea/ Bon certains vont encore me mettre des pouces vers le bas... C'est incroyable de voir que lorsque l'on dit la vérité on est vilipendé, tandis que lorsque certains sortent de grosses bêtises... Tout va bien ! A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
|
32
|
|
|
#15 |
|
Membre actif
![]() Benoit RoccoInscription : décembre 2009 Messages : 87 ![]() |
|
|
|
20
|
Copyright © 2000-2012 - www.developpez.com