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

Buscar en Alias, sencillo pero importante

Estas en el tema de Buscar en Alias, sencillo pero importante en el foro de Mysql en Foros del Web. Hola foreros! Creo que lo que voy a preguntar es sencillo aunque no lo consigo, jeje... y llevo tanto tiempo intentandolo que ya es hora ...
  #1 (permalink)  
Antiguo 12/04/2009, 08:28
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Buscar en Alias, sencillo pero importante

Hola foreros!

Creo que lo que voy a preguntar es sencillo aunque no lo consigo, jeje... y llevo tanto tiempo intentandolo que ya es hora de preguntar a los sabios. Mirar tengo un select tal como este, pero me da error, por intentar buscar en el alias 'nikon':

SELECT name,(SELECT nick FROM usuarios where id = sentence.user) AS nikon FROM sentence where (name LIKE "%busqueda%") or (nikon LIKE "% busqueda%")

¿Como puedo hacer para buscar a la vez en name y el alias nikon?... o es que no se puede buscar en alias?


  #2 (permalink)  
Antiguo 12/04/2009, 08:51
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Buscar en Alias, sencillo pero importante

Que tal salvatore.

Lo que tratas de hacer no es posible.
Lo podrías hacer así:
Código mysql:
Ver original
  1. SELECT name,(SELECT nick FROM usuarios where id = sentence.user) AS nikon FROM sentence where (name LIKE "%busqueda%") or ((SELECT nick FROM usuarios where id = sentence.user) LIKE "% busqueda%")
"Esto funciona si hablamos q la consulta devuelve un solo registro. de lo contrario no funcionará"

Sin embargo, quedaría mejor si relacionaras las tablas con un inner join para mostrar los campos. En ese caso, no es necesario hacer subconsultas.

Si tienes unidas las tablas sentence y usuarios podrías hacer esto:
Código mysql:
Ver original
  1. select s.name, u.nick from sentence s inner join usuarios u on s.id = u.id where
  2. (s.name LIKE "%busqueda%") or (u.nick LIKE "% busqueda%")

Donde s.id y u.id son los campos con los que se relacionan las dos tablas.

Un saludo salbatore
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 12/04/2009, 10:31
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Respuesta: Buscar en Alias, sencillo pero importante

Hola Huesos52!

He estado intentado colocar lo que me comentas en mi select... y pufff... jeje... creo que va a ser imposible, aunque es buena idea. El problema es que mi select tiene varios union con otras tablas, es armado por un contructor con php, el ejemplo que puse arriba era una simplificacion para poder entender mi problema, mira, aunque no te asustes:

SELECT frase as view,date,(SELECT nick FROM usuarios where id = sentence.user) AS nikon FROM sentence where (frase LIKE "%busqueda%") or (nikon LIKE "% busqueda%")
UNION
SELECT pelicula as view,date,(SELECT nick FROM usuarios where id = video.user) AS nikon FROM video where (pelicula LIKE "%busqueda%") or (nikon LIKE "% busqueda%")
ORDER BY date desc LIMIT 0, 5


He intentado integrar tu codigo varias veces pero me da errores por todas partes... jeje... tenia que haberte avisado del monumento de select que tenia, jeje, ya lo siento...

¿Crees que puedo hacer que busque en el alias nikon a la vez que en los demas?, sin eliminar la estructura de union... pues el select no termina del todo... lo he simplificado, jeje.

¿Que crees?... tienes pinta de controlar mysql, jeje.
  #4 (permalink)  
Antiguo 12/04/2009, 10:43
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Buscar en Alias, sencillo pero importante

Que tal salbatore.

La sentencia union en mysql el unico requerimiento que exige, es que las consultas a mostrar sean del mismo numero de columnas. Por ese lado no creo q tengas problema.

Sin embargo, esto te debería funcionar:
Código mysql:
Ver original
  1. SELECT frase as view,(SELECT nick FROM usuarios where id = sentence.user) AS nikon
  2. FROM sentence where (frase LIKE "%busqueda%") or
  3. ((SELECT nick FROM usuarios where id = sentence.user) LIKE "% busqueda%")
  4. SELECT pelicula as view,(SELECT nick FROM usuarios where id = video.user) AS nikon
  5. FROM video where (pelicula LIKE "%busqueda%") or
  6. ((SELECT nick FROM usuarios where id = video.user) LIKE "% busqueda%")

No creo que tengas problema, ya que te refieres a id y creo que son valores únicos.
Sean los union que sea, mientras no interfiera con el numero de columnas no habrá problema.

Que errores te muestra y como estas tratando de implementar las consultas?

Un saludo
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 12/04/2009, 11:39
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Respuesta: Buscar en Alias, sencillo pero importante

Hola hola!... yupi!!!!!!... huesos52!

Guauu... que alegria, en serio... llevaba dos dias probando cosas y nada, jeje. Me has solucionado la vida, jeje... joer menos mal. Cada dia los select de mi web engordan, que si esta condicion que esta otra, jeje... hasta que hace crak y no sabes ni pa donde tirar, jeje.

Muchisimas gracias!...

Bufff... que gusto!!!!!!!!!!!... jeje.

Hasta pronto... crack!.
  #6 (permalink)  
Antiguo 12/04/2009, 11:56
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Buscar en Alias, sencillo pero importante

De nada
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
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:29.