[SBBD] Aide pour faire une requête

Aide pour faire une requête [SBBD] - SQL/NoSQL - Programmation

Marsh Posté le 15-04-2004 à 03:40:03    

Je suis pas un pro en SQL et je dois faire un TP en java avec JDBC.
 
Ma bd est MySQL pour dev, mais les profs vont corriger avec Oracle.
 
J'ai deux tables : auteur et livre.
 
J'ai la requête suivante :
 
select auteur.code,auteur.nom,livre.titre from auteur INNER JOIN livre ON auteur.code = livre.codeAuteur;
 
Et qui donne le résultat suivant :


+------+------------------------+------------------------------------------+
| code | nom                    | titre                                    |
+------+------------------------+------------------------------------------+
| A001 | NEWBY, ERIC            | TEMPETES EN MER DU SUD                   |
| A005 | TABARLY, ERIC          | VICTOIRE EN SOLITAIRE                    |
| A009 | TWAIN, MARK            | LES AVENTURES DE TOM SAWYER              |
| A012 | LA FONTAINE, JEAN (DE) | FABLES                                   |
| A017 | TOLKIEN, J.R.R.        | BILBO LE HOBBIT                          |
| A021 | CERVANTES              | DON QUICHOTTE DE LA MANCHE               |
| A030 | SWIFT, JONATHAN        | LES VOYAGES DE GULLIVER                  |
| A032 | COLLODI, CARLO         | PINOCCHIO                                |
| A037 | COOPER, FENIMORE       | LE DERNIER DES MOHICANS                  |
| A039 | ZOLA, EMILE            | GERMINAL                                 |
| A039 | ZOLA, EMILE            | LA TERRE                                 |
| A039 | ZOLA, EMILE            | LA BETE HUMAINE                          |
| A043 | DAUDET, ALFONSE        | LE PETIT CHOSE                           |
| A043 | DAUDET, ALFONSE        | LETTRES DE MON MOULIN                    |
| A044 | DE FOE, DANIEL         | ROBINSON CRUSOE                          |
| A044 | DE FOE, DANIEL         | MONA ET MOI                              ...


Cependant je dois produire un rapport présenté sous la forme suivante :


BALZAC, HONORE (DE) :
 EUGENIE GRANDET                            
 HISTOIRE DES TREIZE                        
 LE LYS DANS LA VALLEE                      
 LE PERE GORIOT                            
BEECHER-STOWE, HARRIET :
BOISGONTIER JACQUES :
 GUIDE P.S.I. PROGRAMMEUR ACCESS 1.1  


Puis-je faire cela avec une seule requête, ou devrais-je utiliser ma requête actuelle et faire le traitement du côté de Java pour présenté l'information tel que demandé?
 
Merci!!!


Message édité par belzme le 15-04-2004 à 03:40:48
Reply

Marsh Posté le 15-04-2004 à 03:40:03   

Reply

Marsh Posté le 15-04-2004 à 09:40:37    

Traitement en Java :)  
 
Quelque chose qui ressemble à ca :
 
if ($prev_auteur != $auteur) { // auteur différent que précédemment, on l'affiche
    echo $auteur;
    $prev_auteur = $auteur;
}
echo $titre;
 
A chaque ligne traitée, il faut afficher l'auteur seulement s'il est défférent de celui de la ligne précédente. Et on garde le nom de l'auteur affiché ($prev_auteur) pour savoir à la ligne suivante s'il faut l'afficher ou non.
(bon, là, ca s'apparente plus à un simili-PHP, mais c'est juste pour donner le principe :D )


Message édité par mrbebert le 15-04-2004 à 09:42:52
Reply

Marsh Posté le 15-04-2004 à 11:06:53    

+1

Reply

Marsh Posté le 15-04-2004 à 13:45:11    

Ok merci bcp, ce n'est pas très compliqué à faire en Java, mais je ne savais pas si ca fesait directement en SQL.
 
Merci :)

Reply

Marsh Posté le 15-04-2004 à 20:29:22    

pour que ça marche, faut pas oublier de trier par auteur ;)
 
('ORDER BY auteur.nom' dans ta requête)


Message édité par Beegee le 15-04-2004 à 20:29:37
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed