Les sous-requêtes comme opérateur scalaire
<<<
Comparaisons avec les sous-requêtes Sous-requêtes avec les clauses ANY , IN et SOME
>>>

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.2 Comparaisons avec les sous-requêtes

L'utilisation la plus répandue des sous-requêtes est celle-ci :

<non-subquery operand> <comparison operator> (<subquery>)
<comparison operator> est l'un des opérateurs suivants :

= > < >= <= <>
Par exemple :

... 'a' = (SELECT column1 FROM t1)
Il fut un temps où la seule place possible pour une sous-requête était à la droite de l'opérateur de comparaison, mais vous pourrez rencontrer de vieilles bases qui insisteront sur ce point.Voici un exemple de comparaison classiques, pour lequel vous ne pouvez pas utiliser de jointure : trouvez toutes les valeurs de la table t1 qui sont égales au maximum de la valeur dans la table t2 .

SELECT column1 FROM t1
       WHERE column1 = (SELECT MAX(column2) FROM t2);
Voici un autre exemple, qui est aussi impossible à réaliser avec une jointure, car elle impose l'agrégation de plusieurs tables : trouver toutes les lignes de la table t1 qui contiennent une valeur qui apparaît deux fois.

SELECT * FROM t1
       WHERE 2 = (SELECT COUNT(column1) FROM t1);

<< Comparaisons avec les sous-requêtes >>
Les sous-requêtes comme opérateur scalaire Sous-sélections ( SubSELECT ) Sous-requêtes avec les clauses ANY , IN et SOME