tim4info Posté 3 Août 2006 Partager Posté 3 Août 2006 bonjour a tous ! je suis confronté à un problème qui ne me parait aps tellement compliqué mais impossible de le résoudre ! je voudrai connaitre l'auteur d'un sujet à partir d'un id de message(une réponse en fait). pour cela, je pensais recuperer le sujet (place_topics) dans la table message (place_posts) à l'aide de l'id du message (post_id)... et ensuite a partir de l'id du sujet (topic_id), trouver l'auteur de ce sujet(topic_poster). voici ma requete SELECT topic_poster FROM place_topics WHERE topic_id IN (SELECT topic_id FROM place_posts WHERE post_id=133) a l'execution de cette requete un probleme de syntaxe apparait. je n'ai pas d'erreur de noms de champs ou de tables. egalement, lorsque j'exécute les deux parties de ma requete une à une je n'ai aucun probleme à l'execution. voila, merci d'avance pour votre aide ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 3 Août 2006 Partager Posté 3 Août 2006 Il y a de fortes chances que ton serveur SQL ne supporte pas les requêtes imbriquées. Il va falloir utiliser une jointure. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bourinho Posté 3 Août 2006 Partager Posté 3 Août 2006 (modifié) Salut, je crois qu'il y a un moyen de contourner ce problème (je crois vaguement me souvenir que le IN m'avait déjà posé des soucis...) SELECT place_topics.topic_posterFROM place_topicsWHERE EXISTS (SELECT 1 FROM place_postsWHERE place_topics.topic_id = place_posts.topic_idAND place_posts.post_id=133) En espérant que cela corresponde à ce que tu recherches... Modifié 3 Août 2006 par Bourinho Lien vers le commentaire Partager sur d’autres sites More sharing options...
tim4info Posté 3 Août 2006 Auteur Partager Posté 3 Août 2006 Je vous remercie de votre aide !! La solution avec la clause "exists" ne fonctionne pas, j'ai opté pour deux requetes l'une après l'autre. Je voulais faire ça bien, ce sera pour une prochaine fois... Merci encore ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Spidetra Posté 3 Août 2006 Partager Posté 3 Août 2006 SELECT DISTINCT t.topic_posterFROM place_topics t INNER JOIN place_posts p ON t.topic_id = p.topic_idWHERE p.post_id = 133 Lien vers le commentaire Partager sur d’autres sites More sharing options...
tim4info Posté 4 Août 2006 Auteur Partager Posté 4 Août 2006 Je suis revenu consulté au cas ou et miracle, la solution !! Je n'ai jamais employé ce genre de jointure, mais je vais de ce pas m'y mettre ! Mille mercis à Spidetra pour la solution et à tous ceux qui ont participer à mon post. Longue vie à www.webmaster-hub.com !!! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Spidetra Posté 4 Août 2006 Partager Posté 4 Août 2006 http://dev.mysql.com/doc/refman/5.0/fr/join.html Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant