Aide - Recherche - Membres - Calendrier
Version complète : Requête et jointures
Forum Développeur - Administration serveur, programmation et base de données > Techniques et Outils > Serveurs de base de données
Matthieu!
CODE
$sql  = "SELECT a.id, a.titre, c.date, ";
$sql .= "IFNULL(b.titre,'N.C.') AS personne, IFNULL(b.m,'0') AS m, ";
$sql .= "IFNULL(c.photo,'0') AS photo, IFNULL(c.extension,'0') AS extension ";
$sql .= "FROM $TABLE_REALISATIONS a ";
$sql .= "LEFT JOIN (SELECT id, titre, mb FROM $TABLE_PERSONNES) b ON a.id_P=b.id ";
$sql .= "LEFT JOIN (SELECT id_R, photo, extension, date FROM $TABLE_REALISATIONS_IMAGES ORDER BY date DESC) c ON a.id=c.id ";
$sql .= "GROUP BY c.id_R ";
$sql .= "ORDER BY a.date DESC ";
$sql .= "LIMIT 0,6";


Voilà j'ai cette requête qui lie des personnes à des réalisations et c'est ok.
Ensuite elle lie des réalisations à leur images mais et ne récupère que la plus ancienne pour chacune.
Ce qui pose problème c'est que lorsqu'il n'y a pas d'images dans la jointure avec $TABLE_REALISATIONS_IMAGES, l'entrée n'est pas retournée et ça prend la suivant avec une image.

Avez-vous une idée de comment modifier cett requête pour récupérer les 6 dernières réalisations liées chacune à leur dernière image ajoutée (car une réas peut avoir plusieurs images).

Merci à vous, ça fait deux fois que je me fais bloquer par une requête comme çà et je pense que je vais devoir passer par une table temporaire si ça continue. smile.gif
Matthieu!
Le véritable problème c'est d'arriver à faire un GROUP BY di_P sur $TABLE_REALISATIONS et en même temps de faire un ORDER BY date de $TABLE_REALISATIONS_IMAGES pour récupérer la dernière....

Je ne trouve pas l'astuce mais c'est assez récurent comme problème j'ai l'impression icon_confused.gif
Antoine
Je n'arrive pas à me plonger dans ta structure... sans doute lié au fait que je suis au boulot et que je devrais faire autre chose qu'être sur le forum smile.gif

Toutefois, je crains que ta requête soit horriblement lente... Group by, order by et performance, ce n'est pas toujours évident :s
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.