|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre éprouvé
![]() Inscription : septembre 2003 Messages : 400 ![]() |
Bonjour
Pour simplifier, j'ai dans ma base trois tables : Livres (num_livre, titre, num_auteur, num_dessinateur, num_coloriste, num_genre) Auteurs (num_auteur, nom, prenom, ecrit, dessine, colorie) Genres (num_genre, genre) ecrit, dessine et colorie servent à identifier si un auteur est un écrivain et/ou un dessinateur et/ou un coloriste. J'aimerais (simplement) pouvoir afficher : titre, nom, prenom genre J'ai écrit la requête suivante : Code :
Sans doute du à mon niveau débutant en SQl, mais aussi peut-être à une erreur de conception dans mon modèle. Merci |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Serge GirardDéveloppeur informatique Inscription : janvier 2007 Messages : 4 217 ![]() |
Bonjour,
Je ne suis pas sur de vraiment répondre à la demande . Si pour un Livre on a - Un Auteur - Un Dessinateur - Un Coloriste Alors, en utilisant des Alias pour les tables Code :
Maintenant si un livre n'a par exemple pas de Coloriste [NULL] , il n'apparaitra pas dans la liste a cause du INNER JOIN . Si à la place de INNER on met un LEFT , alors on obtiendras une liste de tous les livres , que les 'intervenants' (auteur,dessinateur,coloriste) soient indiqués ou non . un bon petit tutoriel sur les jointures
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous |
||
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 921 ![]() |
il me semble qu'ajouter une table serait plus judicieux:
Type_Auteurs (num_auteur, Type_Auteurs) Type_auteurs contenant : ecrit, dessine et colorie et revoir la table Livres afin d'en éliminer les "auteurs" pour réaliser une table des auteurs d'un livre (il peut avoir plusieurs auteurs par livre, non ?) |
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Inscription : septembre 2003 Messages : 400 ![]() |
@ Olivier : C'est un projet purement personnel. Dans le schéma il est prévu un auteur et un coauteur. Sinon je renseigne auteur à Collectif et le détail sera fait dans un champ commentaire.
@ Sergio : pour le tuto je l'avais bien évidemment imprimé et parcouru ainsi que d'autres, mais ce qui me pertubait était le fait que num_auteur, num_coloriste et num_dessinateur de la table LIVRES renvoient à AUTEURS.Num_auteurPour la différence entre INNER, LEFT et RIGHT j'aivais intégré et remplacé mon INNER par un LEFT plus juste dans mon cas. je vais tester avec les alias et j'espère mettre un tag Résiolu. Merci |
|
|
00
|
|
|
#5 |
|
Membre éprouvé
![]() Inscription : septembre 2003 Messages : 400 ![]() |
Merci cela correspond bien au résultat que je voulais.
Quelques remarques : Après le ORDER il faut L.titre et pas LIVRES.titre plus sérieusement, est ce qu'il y a surtout en terme de performance une limitation sur le nombre de jointures que je peux utiliser. et je ne vois pas bien l'intérêt de passer par une table "intermédiaire" type_Auteurs. Merci encore |
|
|
00
|
|
|
#6 | ||
|
Membre Expert
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 921 ![]() |
Citation:
Citation:
|
||
|
|
00
|
|
|
#7 |
|
Membre éprouvé
![]() Inscription : septembre 2003 Messages : 400 ![]() |
Merci cela est beaucoup plus clair.
Mais si je rajoute une nouvelle catégorie "d'auteurs" il faudra aussi que je rajoute un nouveau champ dans ma table LIVRES par exemple num_peintre ou il y a t il une autre possibilité sur ce cas (simple) |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 921 ![]() |
non il suffit d'une colonne supplémentaire 'type_oeuvre' par exemple
|
|
|
00
|
|
|
#9 |
|
Membre éprouvé
![]() Inscription : septembre 2003 Messages : 400 ![]() |
Merci à tous les deux et à bientôt pour sans doute d'autres questions ici où sur le forum Delphi
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com