 |

Avec MySQL, les commanndes LEFT JOIN B sont implémentées comme suit :
- La table
B est marquée comme étant dépendante de la table A .
- La table
A est marquée comme étant dépendante de toutes les tables (sauf B ) qui sont utilisées dans la condition LEFT JOIN .
- Toutes les conditions
LEFT JOIN sont transformées en clause WHERE .
- 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
WHERE sont effectuées.
- Si une ligne de la table
A satisfait la clause WHERE , mais qu'il n'y a aucuen ligne dans la table B pour satisfaire la condition LEFT JOIN , alors une nouvelle ligne est générée dans B avec toutes ses valeurs mises à NULL .
- Si vous utilisez un
LEFT JOIN pour rechercher des lignes qui n'existent pas dans uen table, et que vous avez le test suivant : column_name IS NULL dans la clause WHERE , où column_name est une colonne déclarée NOT NULL , alors MySQL arrê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 condition LEFT JOIN .
|