Comment ORDER BY dans une table de liaison ?

Eléphanteau du PHP | 38 Messages

18 juil. 2012, 10:50

Bonjour,

Je souhaiterai savoir si c'était possible de faire ceci sans faire une sous requête :

J'ai des personnes
J'ai des livres
J'ai une table de correspondance auteurs / livres avec un role (auteur,histoire, dessin etc). auteur = id_role 1, histoire = id_role 2, dessin = id_role 3

Je souhaite faire une requête qui me liste les livres en prenant une personne maxi mais je veux que cette personne soit de rôle auteur si il y en a un, sinon de rôte histoire, sinon de rôle dessin.

Actuellement j'ai :
SELECT l.titre, p.nom 
FROM livres AS l, personnes AS p, livres_personnes AS lp
WHERE l.id = lp.id_livre AND p.id = lp.id_personne
ORDER BY l.titre ASC
Il faudrait caser un genre de ORDER BY lp.role ASC mais je sais pas si c'est possible. Si je rajoute le ORDER BY lp.role ASC après ORDER BY l.titre ASC forcement ça tri mon listing par titre de livre puis par role mais c'est pas ce que je veux.

Si c'est pas possible je ferais une sous requête pour aller chercher la personne liée à chaque livre.

Merci.

ViPHP
ViPHP | 928 Messages

20 juil. 2012, 00:06

Bonsoir,
si vous souhaitez une réponse il faudrait poster un petit schéma de vos tables car là c'est un peu flou.

Eléphanteau du PHP | 38 Messages

20 juil. 2012, 12:52

Voici les tables :

personnes
- id
- nom

livres
- id
- titre

livres_personnes
- id_livre
- id_personne
- id_role

Merci.