[Mysql] Message Lu & non Lu

Message Lu & non Lu [Mysql] - SQL/NoSQL - Programmation

Marsh Posté le 05-06-2005 à 10:59:32    

Bonjour,
 
J'ai développé un forum et je voulais implémenter la possibilité de trier les messages en fonctino d'un critère message lu et message non lu.
 
j'ai donc une table de message
TABLE message  
CHAMPS msg_id, msg titre....
 
et une table des message lu qui s'agrandit(ou s'update) à chaque lecture d'un message
 
TABLE lecture
CHAMPS msg_id,pseudo, date
 
donc autant pour lister les messages lu d'un pseudo, j'y arrive
 
SELECT A.* FROM message as A, lecture as B where A.msg_id = B.msg_id & B.pseudo = 'toto'
 
mais pour selectionner les messages non lus, là ca devient plus difficile!!
 
SELECT A.* FROM message as A, lecture as B where A.msg_id != B.msg_id & B.pseudo = 'toto'
Cette syntaxe ne fonctionne pas!! car elle a chaque message elle va assigner toute la table lecture car leur id sont différentes!  
 
Quelqu'un a une idée?

Reply

Marsh Posté le 05-06-2005 à 10:59:32   

Reply

Marsh Posté le 05-06-2005 à 11:14:50    

SELECT A.*
FROM message A
LEFT JOIN lecture B ON A.msg_id = B.msg_id  
WHERE B.pseudo = 'toto'
AND B.msg_id IS NULL;

Reply

Marsh Posté le 05-06-2005 à 11:48:00    

OK merci beaucoup  
 
En fait j'ai plutôt utiliser cela!
 
SELECT A.*
FROM message A
LEFT JOIN lecture B ON A.msg_id = B.msg_id  AND B.pseudo = 'toto'
WHERE B.msg_id IS NULL;


Message édité par ledouze le 05-06-2005 à 11:48:23
Reply

Marsh Posté le 05-06-2005 à 12:09:00    

ouaip, j'ai hésité, je me souvenais plus si toutes les conditions sur la jointure externe devaient aller dans le 'ON' ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed