Croiser/comparer les résultats de 2 tables mysql

cs_romega Messages postés 32 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 20 avril 2008 - 13 nov. 2007 à 16:10
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 13 nov. 2007 à 19:42
Salut,
Toujours sur la création d'un blog, j'ai fais la zone d'administration, l'affichage et la saisie des billets (post). Par contre maintenant il faut pouvoir ajouter des commentaires a chaque post. Pour ca j'ai créer une base de donnée contenant l'id, l'id du billet auquel on réagit et le commentaire. Ce que je voudrais c'est que si l'id du billet de la table billets correspond a l'id billet de la table des commentaires, les commentaires s'affiches. En gros il faut que si les 2 nombres sont présent dans les deux tables l'entrée de la table 2 s'affiche. Sachant que je me sers d'une boucle pour afficher les billets et qu'il faudait peut être faire une seconde boucle dans la boucle pour les commentaires, je ne sais pas ? Je ne sais pas si je suis trés clair ?
Merci

2 réponses

cs_romega Messages postés 32 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 20 avril 2008
13 nov. 2007 à 19:28
En fait j'ai trouvé, il faut faire une jointure, mais si vous avez une meilleur solution....
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
13 nov. 2007 à 19:42
Salut,

Pourquoi une meilleure solution ? En quoi une jointure n'est pas une bonne solution ?
En fait, pour faire une requête sur deux tables, tu es obligé de faire une jointure qu'elle soit explicite :

SELECT b.champ1, b.champ2, ... FROM billets b LEFT JOIN commentaires c ON b.id_billet=c.id_billet WHERE b.id_billet=XX;

ou implicite :

SELECT b.id_billet, b.texte_billet, c.commentaire FROM billets b, commentaires c WHERE b.id_billet=c.id_billet

Les deux syntaxes sont équivalentes et font une jointure. Je ne vois vraiment pas ce qu'une jointure a de "mauvais".
0
Rejoignez-nous