[RESOLU] Trier sur deux tables

Trier sur deux tables [RESOLU] - SQL/NoSQL - Programmation

Marsh Posté le 04-10-2007 à 14:10:49    

Bonjour !
 
J'ai encore un peu de mal sur MySQL
 
Pour résumer la situation j'ai 3 tables : livres, auteurs_normaux et auteur_fictifs
 
Dans livres j'ai les caractéristiques du livre + un champ appelé "auteur". dans ce champ j'ai soit une valeur positive (qui correspond à un auteur normal) soit une valeur négative (qui correspond à un auteur fictif).
 
Et dans mes deux tables d'auteurs j'ai 2 champs : "auteur_id" et "auteur_nom"
 
Il se trouve (pour ne pas rentrer dans les détails) que ce serait impossible de rejoindre ces 2  tables donc je dois faire sans...
 
Comment puis-je sortir la liste de tous mes livres, avec le nom de l'auteur (qu'il soit réel ou fictif), triés dans l'odre alphabétique du nom de l'auteur ?
 
Merci !!! :)


Message édité par arkandias1 le 04-10-2007 à 14:29:56
Reply

Marsh Posté le 04-10-2007 à 14:10:49   

Reply

Marsh Posté le 04-10-2007 à 14:20:03    

Ben si, tu peux parfaitement joindre toutes tes tables...
 

Code :
  1. SELECT l.titre, ifnull(n.auteur_nom, f.auteur_nom) nom
  2. FROM livres l
  3. LEFT OUTER JOIN auteurs_normaux n ON l.auteur > 0 AND n.auteur_id = l.auteur
  4. LEFT OUTER JOIN auteur_fictifs ON l.auteur < 0 AND f.auteur_id = -l.auteur
  5. ORDER BY nom


Message édité par MagicBuzz le 04-10-2007 à 14:22:01
Reply

Marsh Posté le 04-10-2007 à 14:27:09    

Oui merci ca marche !!
 
Tu avais juste oublié le petit "f" après auteurs_fictifs :)  
 
Eh ben merci encore pour ta rapidité :hello:


Message édité par arkandias1 le 04-10-2007 à 14:29:35
Reply

Marsh Posté le 04-10-2007 à 14:32:01    

effectivement :)

Reply

Sujets relatifs:

Leave a Replay

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