Bonjour tout le monde, j'ai une question qui me tarone l'esprit:

J'ai une requête SQL qui est la suivante:

    public function getThreads($id) {
        $g = $this->db->fetchArray($this->db->prepare('SELECT t.*, u.name as creator, p.name as answerer, a.time as created from procms_thread t LEFT JOIN procms_users u ON u.id = t.user_id LEFT JOIN procms_answer a ON a.thread_id = t.id LEFT JOIN procms_users p ON p.id = a.user_id WHERE t.forum_id = ? LIMIT 10', [$id]));
        return $g;
    }

On peut voir 3 LEFT JOIN, et un LIMIT à la fin que je voudrais qu'il limit uniquement les procms_thread récupérés. Ensuite je voudrais un autre limit dans la requête pour limiter les procms_answer trouvées....
Cela est-il possible? J'ai cherché sur internet mais je n'ai pas trouvé ce qui correspond à ma demande.

Si quelqu'un serait m'aider, ce serait sympa ! :)

2 réponses


Alex
Auteur
Réponse acceptée

J'ai réglé le problème en faisant une autre requete SQL du coup...

Salut..

SELECT t.*, u.name as creator, p.name as answerer, a.time as created 
FROM procms_thread t 
LEFT JOIN procms_users u ON u.id = t.user_id 
LEFT JOIN procms_answer a ON a.thread_id = t.id 
LEFT JOIN procms_users p ON p.id = a.user_id 
WHERE t.forum_id = ? 
LIMIT 10

.. là c'est déjà plus lisible..

Tu es sur que c'est un LEFT JOIN que tu veux faire et pas une autre jointure SQL ?