Comme tu l'as compris, LEFT JOIN retourne toutes les lignes de la table de gauche et seulement celles de la table de droite pour lesquelles la condition est vérifiée.
1° Lorsque la condition n'est pas vérifiée, l'enregistrement correspondant contiendra les champs de la table de gauche et NULL pour ceux de la table de droite.
2° Lorsque la condition est vérifiée, l'enregistrement correspondant contiendra les champs des tables de gauche et de droite.
Le nombre de résultats retournés par la requête est au minimum égal au nombre d'enregistrements dans la table de gauche (car 1° ).
Ce nombre peut être plus élevé lorsque la condition est vérifiée plusieurs fois pour un même enregistrement de la table de gauche.
En prenant ton exemple :
Lorsqu'aucun id2 ne correspond à id1, id2 sera égal à NULL et 1 ligne sera retournée.
Lorsque plusieurs id2 correspondent à id1, il y aura autant de lignes de résultat.
je devrai avoir le même nombre de lignes que ma table d'origine.
Le nombre d'enregistrement dans la table de gauche indique seulement le nombre minimum de résultats.
Partager