sql >> Base de Datos >  >> RDS >> Mysql

Columna de uso de SQL de la subselección en la cláusula where

No puede usar un alias de columna en WHERE cláusula.

Entonces, envuelve su consulta en una selección externa y aplica su condición allí

SELECT * 
  FROM
(
  SELECT a, b, c,
    (SELECT d FROM B LIMIT 0,1) d
  FROM A
) q
 WHERE d >= 10

o puede introducir esa condición en HAVING cláusula en su lugar

SELECT a, b, c,
    (SELECT d FROM B LIMIT 0,1) d
  FROM A
HAVING d >= 10

Otro enfoque más es usar CROSS JOIN y aplica tu condición en WHERE cláusula

SELECT a, b, c, d
  FROM A CROSS JOIN 
(
  SELECT d FROM B LIMIT 0,1
) q
 WHERE d >= 10

Aquí está SQLFiddle demostración para todas las consultas mencionadas anteriormente.