EXISTS et NOT EXISTS
<<<
Sous-requêtes de ligne Sous-requêtes dans la clause FROM
>>>

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.7 Sous-requêtes de ligne

Jusqu'ici, nous avons étudié les sous-requêtes scalaires, ou de colonnes : des sous-requêtes qui retournent une seule valeur dans une ligne. Une sous-requête de ligne est une variante qui retourne une seule ligne : elle peut donc retourner plusieurs colonnes. Voici deux exemples :

SELECT * FROM t1 WHERE (1,2) = (SELECT column1, column2 FROM t2);
SELECT * FROM t1 WHERE ROW(1,2) = (SELECT column1, column2 FROM t2);
Les requêtes ci-dessus sont toutes les deux TRUE si la table t2 a une ligne où column1 = 1 et column2 = 2 .L'expression (1,2) est parfois appelée un constructeur de ligne et est valide dans d'autres contextes. Par exemple, les deux commandes suivantes sont sémantiquement équivalentes, même si la précédente peut être optimisée :

SELECT * FROM t1 WHERE (column1,column2) = (1,1);
SELECT * FROM t1 WHERE column1 = 1 AND column2 = 1;
L'utilisation traditionnelle des constructeurs de ligne est lors des comparaisons avec des sous-requêtes qui retournent plusieurs colonnes. Par exemple, cette requête répond à la question : ``trouve toutes les lignes de la table t1 qui sont dupliquées dans la table t2'':

SELECT column1,column2,column3
       FROM t1
       WHERE (column1,column2,column3) IN
             (SELECT column1,column2,column3 FROM t2);

<< Sous-requêtes de ligne >>
EXISTS et NOT EXISTS Sous-sélections ( SubSELECT ) Sous-requêtes dans la clause FROM