Utiliser un LIMIT pour un LEFT Join particulité

Par Alex, il y a 9 ans


Base de données MySQL

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

Canonier, il y a 9 ans

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 ?

Alex, il y a 9 ans

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