Bonsoir à tous,
J'aimerais posé une colle aux pros de mysql !!!
J'ai une requête "incomplète" pour le moment :
SELECT
messagerie_sujet.id_sujet,
messagerie_sujet.titre,
messagerie_message.id_sujet,
messagerie_message.id_membreB,
messagerie_message.id_membreA,
messagerie_message.id_message,
messagerie_message.date,
membre_liste.id_membre,
membre_liste.pseudo
FROM messagerie_message
LEFT JOIN messagerie_sujet ON messagerie_message.id_sujet = messagerie_sujet.id_sujet
LEFT JOIN membre_liste ON messagerie_message.id_membreB = membre_liste.id_membre
WHERE messagerie_message.id_membreA = :id
ORDER BY messagerie_message.id_message ASC LIMIT 1
1. J'aimerais, toujours dans cette requête, savoir si il y a un message "non lu",
Ce qui revient à vérifier que pour le sujet il y a un enregistrement dans la table "nonlu".
Est-ce qu'il serait possible de créer, par exemple, un champ "nonlu" qui prendrait pour valeur le nombre de ligne dans la table "nonlu" qui aurait le même id ?
2. J'aimerai qu'il compte le nombre de message qui ont le même id sujet dans la table "messagerie_message", est-ce possible ?
Pour ces deux questions, peut-on imaginer ceci :
SELECT
messagerie_sujet.id_sujet,
messagerie_sujet.titre,
messagerie_message.id_sujet,
messagerie_message.id_membreB,
messagerie_message.id_membreA,
messagerie_message.id_message,
messagerie_message.date,
membre_liste.id_membre,
membre_liste.pseudo,
(COUNT(id_nonlu) FROM messagerie_nonlu WHERE messagerie_nonlu.id_sujet = messagerie_message.id_sujet) as nonlu,
(COUNT(id_message) FROM messagerie_message WHERE messagerie_message.id_sujet = messagerie_message.id_sujet) as nombre
FROM messagerie_message
LEFT JOIN messagerie_sujet ON messagerie_message.id_sujet = messagerie_sujet.id_sujet
LEFT JOIN membre_liste ON messagerie_message.id_membreB = membre_liste.id_membre
WHERE messagerie_message.id_membreA = :id
ORDER BY messagerie_message.id_message ASC LIMIT 1
Voici mes tables.
Table "Membre_liste" :
`membre_liste` (
`id_membre` int(11) NOT NULL auto_increment,
`pseudo` varchar(55) NOT NULL,
`mail` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`visite` varchar(25) NOT NULL,
PRIMARY KEY (`id_membre`)
Table "Messagerie_sujet" :
`messagerie_sujet` (
`id_sujet` int(11) NOT NULL auto_increment,
`titre` varchar(255) NOT NULL,
PRIMARY KEY (`id_sujet`)
Table "Messagerie_message" :
`messagerie_message` (
`id_message` int(11) NOT NULL auto_increment,
`id_sujet` int(11) NOT NULL,
`id_membreA` int(11) NOT NULL,
`id_membreB` int(11) NOT NULL,
`message` text NOT NULL,
`date` varchar(20) NOT NULL
Table "Messagerie_nonlu" :
`messagerie_nonlu` (
`id_nonlu` int(11) NOT NULL auto_increment,
`id_sujet` int(11) NOT NULL,
`id_membre` int(11) NOT NULL,
PRIMARY KEY (`id_nonlu`)
Ps : Si vous comprenez pas, ce que je peux entièrement comprendre, n'hésitez pas à poser des questions !
Récupération d'info sur plusieurs tables
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.