Sous-requêtes avec ALL <<< |
Sous-requêtes corrélées | EXISTS et NOT EXISTS >>> |
14.1.8 Sous-sélections ( SubSELECT ) 14.1 Manipulation de données : SELECT , INSERT , UPDATE , DELETE 14 Syntaxe des commandes SQL Manuel de Référence MySQL 4.1 : Version Française . Les sous-requêtes comme opérateur scalaire . Comparaisons avec les sous-requêtes . Sous-requêtes avec les clauses ANY , IN et SOME . Sous-requêtes avec ALL ->Sous-requêtes corrélées . EXISTS et NOT EXISTS . Sous-requêtes de ligne . Sous-requêtes dans la clause FROM . Erreurs de sous-requêtes . Optimisation des sous-requêtes . Se passer des sous-requêtes avec les premières versions de MySQL |
14.1.8.5 Sous-requêtes corréléesUne sous-requête corrélée est une sous-requête qui contient une référence à une colonne qui est aussi dans une requête différente. Par exemple :
Supposez que la table t1 contienne une ligne où column1 = 5 et column2 = 6 ; alors que la table t2 continue une ligne où column1 = 5 et column2 = 7 . l'expression ... WHERE column1 = ANY (SELECT column1 FROM t2) sera alors TRUE , mais dans cet exemple, la clause WHERE de la sous-requête est FALSE (car 7 <> 5), et donc, toute la sous-requête est FALSE . Règles de contexte : MySQL fait les évaluations de l'intérieur vers l'extérieur. Par exemple :
Dans certains cas, les sous-requêtes corrélées sont optimisées. Par exemple :
|
<< | Sous-requêtes corrélées | >> |
Sous-requêtes avec ALL | Sous-sélections ( SubSELECT ) | EXISTS et NOT EXISTS |