merci pour ta réponse.
pour info une requète avec MySQL 4 ca marche pour info
exemple sur une petite base
$sql = 'SELECT s.sujet_id, ml.dernier_message_lu
FROM ' . SUJETS_TABLE . ' s
LEFT JOIN ' . MESSAGES_LUS_TABLE . ' ml
ON s.sujet_id = ml.sujet_id
AND ml.membre_id = \'' . $membre_id . '\'
';
donne :
Array ( [sujet_id] => 1 [dernier_message_lu] => 1113209398 )
Array ( [sujet_id] => 2 [dernier_message_lu] => 1113209451 )
Array ( [sujet_id] => 3 [dernier_message_lu] => 1113209555 )
Array ( [sujet_id] => 4 [dernier_message_lu] => 1113209570 )
Array ( [sujet_id] => 5 [dernier_message_lu] => 1113220510 )
Array ( [sujet_id] => 6 [dernier_message_lu] => 1113220520 )
Array ( [sujet_id] => 7 [dernier_message_lu] => 1113222356 )
Array ( [sujet_id] => 8 [dernier_message_lu] => 1113222367 )
Array ( [sujet_id] => 9 [dernier_message_lu] => )
Array ( [sujet_id] => 10 [dernier_message_lu] => )
Array ( [sujet_id] => 11 [dernier_message_lu] => )
et
$sql = 'SELECT s.sujet_id, ml.dernier_message_lu
FROM ' . SUJETS_TABLE . ' s
LEFT JOIN ' . MESSAGES_LUS_TABLE . ' ml
ON s.sujet_id = ml.sujet_id
WHERE ml.membre_id = \'' . $membre_id . '\'
';
donne
Array ( [sujet_id] => 1 [dernier_message_lu] => 1113209398 )
Array ( [sujet_id] => 2 [dernier_message_lu] => 1113209451 )
Array ( [sujet_id] => 3 [dernier_message_lu] => 1113209555 )
Array ( [sujet_id] => 4 [dernier_message_lu] => 1113209570 )
Array ( [sujet_id] => 5 [dernier_message_lu] => 1113220510 )
Array ( [sujet_id] => 6 [dernier_message_lu] => 1113220520 )
Array ( [sujet_id] => 7 [dernier_message_lu] => 1113222356 )
Array ( [sujet_id] => 8 [dernier_message_lu] => 1113222367 )
si on met AND après ON la condition s'applique à la jointure si on met WHERE à la place la condition s'applique au résultat de la jointure ce qui n'est pas la même chose comme on le voit