|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre habitué
![]() Luis Inscription : avril 2006 Messages : 436 ![]() |
Bonjour a tous
j'ai un soucis de SQL que je n'arrive pas a resoudre, j'espere que qq'un connait un truc. Alors voila, il s'agit de la gestion d'un catalogue de livre. J'ai 3 tables, la TABLE 1 decrit le livre avec le titre etc La TABLE 2 est une table de relations PK FK et la TABLE 3 defini les auteurs. Le but est de creer une nouvelle table ou vue qui rassemble pour chaque livre le ou les auteurs du livre S'il y avait juste un auteur par livre ça serait beaucoup plus facil car un join suffirait. Le probleme c'est que pour un livre il peu y avoir plusieurs auteurs. La segonde complication c'est que l'ordre des auteurs doit etre respecté vu que le premier de la liste est l'auteur principal, et les autres, les auteurs segondaires. La table 1 comporte environ 700 livres, donc la table finale devra comporter 700 rows Dans la nouvelles table l'on aura tous les champs de la table 1 + les auteurs. Voici un exemple de sortie (on considere que le livre de l'exemple a 2 auteurs): Code :
Code :
D'avance merci |
||||
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Cyrille Administrateur de base de données Inscription : avril 2005 Messages : 112 ![]() |
Comment fait on pour savoir quel auteur est l'auteur principal? Sans cette information, impossible de les sortirs correctement...
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Luis Inscription : avril 2006 Messages : 436 ![]() |
Salut
les auteurs apparaissent dans l'ordre, le premier de la table est l'auteur principal, les autres les segondaires. Il n'y a pas d'index sur cette table. D'avance merci |
|
|
00
|
|
|
#4 | |||
|
Membre actif
![]() Cyrille Administrateur de base de données Inscription : avril 2005 Messages : 112 ![]() |
Citation:
A toi d'arranger pour que ca fonctionne avec tes paramètres. J'ai testé et ca marche. Code :
|
|||
|
00
|
|
|
#5 |
|
Membre habitué
![]() Luis Inscription : avril 2006 Messages : 436 ![]() |
Salut
whaaa rapide, merci de ta reponse, je ne pourrait pas tester avant ce soir. Donc je donnerait le feed back plus tard. Encore merci |
|
|
00
|
|
|
#6 | |
![]() Inscription : décembre 2002 Messages : 2 385 ![]() |
Citation:
Dans une table, il n'y a pas d'ordre implicite, pas même l'ordre d'insertion. Ca peut donner l'illusion de marcher, mais c'est fondamentalement faux. Lors du SELECT, les données peuvent ressortir dans un ordre qui n'est pas celui de l'insertion. Donc s'il y a lieu de distinguer auteur principal et auteur secondaire, il faut prévoir une colonne supplémentaire à cet effet. De même, si vous avez besoin d'un ordre d'affichage particulier, il faut explicitement utiliser ORDER BY.
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
|
10
|
|
|
#7 |
|
Membre habitué
![]() Luis Inscription : avril 2006 Messages : 436 ![]() |
Bonjour
ok, ce soir je regarderais dans la table s'il existe un champ qui permette de faire ce distingo... merci pour ce point, je pensais que un select donnait les rows dans le meme ordre de l'insertion. Bonne journée |
|
|
00
|
|
|
#8 |
|
Membre habitué
![]() Luis Inscription : avril 2006 Messages : 436 ![]() |
Bonjour a tous
alors voici le resultat, la requete avec la fonction marche super bien !! MERCI et pour la deuxieme question, par rapport a l'ordre, et bien il n'y a rien dans la table qui permette de diferencier l'auteur principal et les autres, donc ... Et bien je vous souhaite a tous un bon week end ! Ciao |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com