par
moogli » 16 oct. 2014, 22:44
salut,
elle sert a rien la 1ère table O_o
tu fais une auto jointure sur la table message en utilisant l'id du premier message pour suivre les autres (avec une colonne id_parent fk de la même table sur id).
sinon sur le principe il faut que tu sélectionne les infos deux tables avec deux jointures sur la table utilisateur
a quoi peux servir la colonne status_expéditeur ? pour savoir l'expéditeur a bien lu son message ?
une requête dans le style devrait t'aider
SELECT
m.id,
message,
status_destinataire,
status_expediteur,
expediteur_id,
destinataire_id,
conv_id,
created_at,
updated_at,
u1.nom nomExpe,
u1.prenom prenomExpe,
u2.nom nomdest,
u2.prenom prenomdest,
(SELECT count(1)
FROM messagerie_messages_reseau m2
WHERE m2.conv_id = m.conv_id AND m2.status_destinataire = 0) AS nbnonlu
FROM messagerie_messages_reseau m
JOIN users u1 ON expediteur_id = u1.id
JOIN users u2 ON destinataire_id = u2.id
WHERE expediteur_id = sid OR destinataire_id = sid
GROUP BY conv_id
salut,
elle sert a rien la 1ère table O_o
tu fais une auto jointure sur la table message en utilisant l'id du premier message pour suivre les autres (avec une colonne id_parent fk de la même table sur id).
sinon sur le principe il faut que tu sélectionne les infos deux tables avec deux jointures sur la table utilisateur
a quoi peux servir la colonne status_expéditeur ? pour savoir l'expéditeur a bien lu son message ?
une requête dans le style devrait t'aider
[sql]
SELECT
m.id,
message,
status_destinataire,
status_expediteur,
expediteur_id,
destinataire_id,
conv_id,
created_at,
updated_at,
u1.nom nomExpe,
u1.prenom prenomExpe,
u2.nom nomdest,
u2.prenom prenomdest,
(SELECT count(1)
FROM messagerie_messages_reseau m2
WHERE m2.conv_id = m.conv_id AND m2.status_destinataire = 0) AS nbnonlu
FROM messagerie_messages_reseau m
JOIN users u1 ON expediteur_id = u1.id
JOIN users u2 ON destinataire_id = u2.id
WHERE expediteur_id = sid OR destinataire_id = sid
GROUP BY conv_id[/sql]