Jointures 3 tables

Fermé
Barhamada Messages postés 7 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 31 octobre 2014 - Modifié par Barhamada le 29/10/2014 à 19:33
Barhamada Messages postés 7 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 31 octobre 2014 - 30 oct. 2014 à 02:27
Salut a tous
je vous explique mon probleme:
j'ai 3 tables:
users(id,username,password) | post(id,id_user,message) | likes(id,id_post,id_user)

Je voudrais ainsi afficher les posts avec le username correspondant et le nombres de likes de chaque post en une requete. Voici ma requete mais ca ne marche pas:
mysql_query("SELECT post.id,msg,date,user_id,username,COUNT(likes.id) AS lk FROM post 
INNER JOIN users ON user_id=users.id
INNER JOIN likes ON post.id=likes.id_post
WHERE post.status=1 ORDER BY post.id DESC") or die(mysql_error());


Quelqu'un a une idée ? Est ce la meilleur structure pour gérer les posts ?
Merci
A voir également:

1 réponse

DelNC Messages postés 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 1 999
30 oct. 2014 à 00:07
Bonjour,

Essayez la requête ci-dessous:

 
SELECT post.id, users.username, count(likes.id_post)
FROM post, users, likes
WHERE likes.id_user = users.id
AND likes.id_post = post.id
Group BY post.idpost;


Dans votre requête vous n'aviez pas indiquer comment les tables sont reliées entre elles.
4
Barhamada Messages postés 7 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 31 octobre 2014 1
30 oct. 2014 à 02:27
Salut DeLNC et merci pour ta réponse ca marche nickel. Cependant j'ai voulu ajouter 2 autres jointures en suivant ta logique mais je sais pas pourquoi ca mache pas. je voudrais ainsi recupérer le nombre de dislike et de commentaire et j'ai rajouté:
SELECT post.id,msg,date,users.username, count(likes.id_post),count(dislike.id_post),count(comments.id_post)
FROM post, users, likes, dislike,comments
WHERE post.user_id = users.id
AND likes.id_post = post.id
AND dislike.id_post = post.id
AND comments.id_post = post.id
Group BY post.id


Encore Merci
0