El uso más común de una subconsulta es de la forma:
non_subquery_operandcomparison_operator(subquery)
          Donde comparison_operator es uno de
          estos operadores:
= > < >= <= <>
Por ejemplo:
... 'a' = (SELECT column1 FROM t1)
Tiempo atrás el único sitio legal para una subconsulta era la parte derecha de la comparación, y puede encontrar algunos SGBDs que insistan en ello.
          He aquí un ejemplo de una comparación común de subconsultas
          que no puede hacerse mediante un join. Encuentra todos los
          valores en la tabla t1 que son iguales a un
          valor máximo en la tabla t2:
        
SELECT column1 FROM t1 WHERE column1 = (SELECT MAX(column2) FROM t2);
          Aquí hay otro ejemplo, que de nuevo es imposible de hacer con
          un join ya que involucra agregación para una de las tablas.
          Encuentra todos los registros en la tabla
          t1 que contengan un valor que ocurre dos
          veces en una columna dada:
        
SELECT * FROM t1 AS t WHERE 2 = (SELECT COUNT(*) FROM t1 WHERE t1.id = t.id);
          Para una comparación realizada con uno de estos operadores,
          la subconsulta debe retornar un escalar, con la excepción que
          = puede usarse con subconsultas de
          registro. Consulte Sección 13.2.8.5, “Subconsultas de registro”.
        
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

