Sous-requêtes avec ALL <<< |
Sous-requêtes correllées | EXISTS et NOT EXISTS >>> |
14.1.8 Sous sélections (Sub SELECT ) 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 correllé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 correlléesUne sous-requête correllé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 continne 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 :
La recommandation officieuse de MySQL est : évitez les correllations, car votre requête sera complexe et plus lente. |
<< | Sous-requêtes correllées | >> |
Sous-requêtes avec ALL | Sous sélections (Sub SELECT ) | EXISTS et NOT EXISTS |