Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

No Reconoce Columna creada por segunda consulta

Estas en el tema de No Reconoce Columna creada por segunda consulta en el foro de Mysql en Foros del Web. Hola, tengo una funcion, que me esta dando guerra. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT c.customers_id , c. customers_firstname , customers_lastname , ( SELECT ...
  #1 (permalink)  
Antiguo 01/06/2016, 07:58
Avatar de Pentaxeros  
Fecha de Ingreso: mayo-2008
Mensajes: 173
Antigüedad: 15 años, 11 meses
Puntos: 3
No Reconoce Columna creada por segunda consulta

Hola, tengo una funcion, que me esta dando guerra.
Código MySQL:
Ver original
  1. SELECT c.customers_id ,c. customers_firstname,customers_lastname,
  2. (
  3. SELECT GROUP_CONCAT(`entry_firstname`,`entry_lastname`,`entry_telephone`) FROM `address_book` cc WHERE c.customers_id= cc.customers_id
  4. ) AS CAMPONUEVO
  5.  
  6. FROM customers c
  7.  
  8. c.customers_firstname LIKE '%dani%' OR
  9. c.customers_lastname LIKE '%dani%' OR
  10. CAMPONUEVO LIKE '%dani%'
  11. ORDER BY c.customers_id DESC LIMIT 0,50 ;

El error que me da es Unknown column 'CAMPONUEVO' in 'where clause'

Porque no puedo usar WHERE en el CAMPO que he creado nuevo con el segundo SELECT???

Saludos!

Última edición por gnzsoloyo; 01/06/2016 a las 08:11
  #2 (permalink)  
Antiguo 01/06/2016, 08:16
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No Reconoce Columna creada por segunda consulta

Ni MySQL ni ningún DBMS te la van a reconocer...

"CAMPONUEVO" es, en realidad, el alias que le estás dando a la subconsulta, dentro del SELECT de la consulta mayor, y no es una columna de la subconsulta. Por consiguiente entra en las restricciones generales del SQL, que no permiten usar los alias de las columnas en la misma query que los define.
Para que te sirva, debería ser un campo devuelto por una tabla derivada, es decir una subconsulta en el FROM, y NO en el SELECT.


Código MySQL:
Ver original
  1. SELECT c.customers_id , c.customers_firstname, customers_lastname, cc.CAMPONUEVO
  2. FROM customers c
  3.     INNER JOIN
  4.      (SELECT GROUP_CONCAT(`entry_firstname`,`entry_lastname`,`entry_telephone`) CAMPONUEVO , customers_id
  5.         FROM `address_book`) cc  
  6.     ON  c.customers_id= cc.customers_id  
  7.     c.customers_firstname LIKE '%dani%' OR
  8.     c.customers_lastname LIKE '%dani%' OR
  9.     CAMPONUEVO LIKE '%dani%'
  10. ORDER BY c.customers_id DESC
  11. LIMIT 0,50 ;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo, columna, reconoce, segunda, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:46.