|  |  
 
Avec MySQL, les commanndes LEFT JOIN B sont implémentées comme suit : 
La table Best marquée comme étant dépendante de la tableA.La table Aest marquée comme étant dépendante de toutes les tables (saufB) qui sont utilisées dans la conditionLEFT JOIN.Toutes les conditions LEFT JOINsont transformées en clauseWHERE.Toutes les optimisations standard de regroupement sont effectuées, à l'exception près qu'une table n'est lue qu'après toutes les tables dont elle dépend. Si il y a une référence circulaire MySQL retournera une erreur.
Toutes les optimisations standard de WHEREsont effectuées.Si une ligne de la table Asatisfait la clauseWHERE, mais qu'il n'y a aucuen ligne dans la tableBpour satisfaire la conditionLEFT JOIN, alors une nouvelle ligne est générée dansBavec toutes ses valeurs mises àNULL.Si vous utilisez un LEFT JOINpour rechercher des lignes qui n'existent pas dans uen table, et que vous avez le test suivant :column_name IS NULLdans la clauseWHERE, où column_name est une colonne déclaréeNOT NULL, alorsMySQLarrêtera de cherche d'autres lignes (pour une combinaison particulière de clés) dès qu'il aura trouvé une ligne qui satisfait la conditionLEFT JOIN. |