une trouvaille je n'avais jamais utilisé la clause IF dans une requete My SQL
IF(exp1,exp2,exp3) => si exp1 est vrai -> exp2 sinon exp3
utilisation :
Si après un LEFT JOIN vous avez un champ qui prend une valeur = null vous pouvez l'enlever comme suit.
supponsons que votre requete soit :
SELECT s.sujet_id , s.forum_id, s.dernier_message_temps as dernier_msg,
ml.dernier_message_lu
FROM fsb_sujets s
LEFT JOIN fsb_messages_lus ml
ON s.sujet_id = ml.sujet_id AND ml.membre_id = '1'
WHERE s.dernier_message_temps > '1114500000'
GROUP BY s.sujet_id
le champ dernier_message_lu sera null si aucun enregistrement est trouvé dans la table messages_lus
pour eviter cela ecrire
SELECT s.sujet_id , s.forum_id, s.dernier_message_temps as dernier_msg,
IF(ml.dernier_message_lu,ml.dernier_message_lu,0) as dernier_message_lu
FROM fsb_sujets s
LEFT JOIN fsb_messages_lus ml
ON s.sujet_id = ml.sujet_id AND ml.membre_id = '1'
WHERE s.dernier_message_temps > '1114500000'
GROUP BY s.sujet_id
et comme par miracle les null sont transformés en zéro