Bonjour,
je cale sur une requete SQL.
C'est une requete avec des sous requetes sur la meme table, je me demande s'il n'est pas possible de faire des jointures plutôt que des select imbriqués, qui affectent fortement les performances.
Plus concrètement, c'est pour un script de "forum maison"; en gros un forum à un id, et un parent_id s'il s'agit d'un sous forum. On pourrait schématiser mon arborescence comme ci dessous
forum 1
--sous forum 1.1
--sous forum 1.2
--sous forum 1.3
--sous forum 2.1
--sous forum 2.2
------sous forum 2.2.1
------sous forum 2.2.3
forum 2
etc
3 niveaux donc.
J'aimerai que le forum 1 affiche les topics de tous ses sous forums.
Ca me donne des requetes avec des SELECT imbriqué ainsi:
1 2 3 4
|
SELECT * FROM topics
WHERE forum_id IN
(SELECT id FROM forums WHERE id=1 OR parent_forum_id=1 OR id IN (SELECT parent_forum_id FROM forums WHERE parent_forum_id=1)) |
edit: (ma requette ci dessus est fausse la partie
OR id IN (SELECT parent_forum_id FROM forums WHERE parent_forum_id=1))
est bidon. )
ce qui ne me plait pas du tout ... je dois pouvoir faire tout ca avec des jointures non? Merci d'avance pour votre aide,
ZN
Partager