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

Bug en subqueries?

Estas en el tema de Bug en subqueries? en el foro de Mysql en Foros del Web. Hola Estoy probando una subquery sencilla del libro de certificación para MySQL: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT Code c , Name FROM Country ...
  #1 (permalink)  
Antiguo 01/10/2011, 14:31
 
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 1
Pregunta Bug en subqueries?

Hola

Estoy probando una subquery sencilla del libro de certificación para MySQL:

Código MySQL:
Ver original
  1. SELECT Code c, Name
  2. FROM Country
  3. WHERE Continent = 'Europe'
  4. AND EXISTS (SELECT * FROM CountryLanguage  
  5. WHERE CountryCode = c
  6. AND Language = 'Spanish');

Pero me está tirando el error

Código:
ERROR 1054 (42S22): Unknown column 'c' in 'where clause'
Parece que el alias "c" de Code no la ve dentro de la subquery, (si pongo "Code" directamente sí). He visto que en muchas webs se usa este código y durante el libro también en otras subconsultas... Será un bug de mi versión de MySQL? alguien sabe seguro que ese código funciona?

¡¡Gracias!!
  #2 (permalink)  
Antiguo 01/10/2011, 16:06
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: Bug en subqueries?

No se puede usar los nombres de los alias de columnas en un WHERE. Sólo acepta los nombres reales de las columnas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 02/10/2011, 06:20
 
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Bug en subqueries?

Hola gnzsoloyo

Llevas razón, además leyendo la documentación oficial:

Standard SQL disallows references to column aliases in a WHERE clause. This restriction is imposed because when the WHERE clause is evaluated, the column value may not yet have been determined.

Fuente: http://dev.mysql.com/doc/refman/5.0/...ith-alias.html

Así que el libro es incorrecto..

¡Gracias!

Etiquetas: bug, query, select, sql
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 19:53.