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

Problemas con SELECT CONCAT en subconsulta

Estas en el tema de Problemas con SELECT CONCAT en subconsulta en el foro de Mysql en Foros del Web. favor ayudenme... el problema es el siguiente, tengo un registro que guarda el nombre de un archivo y debo mostrarlo con la ruta completa en ...
  #1 (permalink)  
Antiguo 09/08/2011, 09:46
 
Fecha de Ingreso: mayo-2011
Mensajes: 15
Antigüedad: 13 años, 6 meses
Puntos: 1
Exclamación Problemas con SELECT CONCAT en subconsulta

favor ayudenme... el problema es el siguiente, tengo un registro que guarda el nombre de un archivo y debo mostrarlo con la ruta completa en donde esta guardado, solo puedo utilizar MYSQL nada de PHP u otros.

ami se me ocurrio concatenar estos dos datos en una consulta pero aun asi me da un error

la consulta:
Código SQL:
Ver original
  1. SELECT  d.factura_idfactura AS factura, f.rut, f.empresa, f.glosa, f.fecha, d.porcentaje, d.monto , (SELECT CONCAT ('http://sitio.com/img/archivo/','', archivo)  AS archivo FROM factura )
  2.  
  3. FROM descripcion d , actura f
  4.  
  5. WHERE d.iddescripcion=d.iddescripcion AND d.factura_idfactura=f.idfactura

este es el error:
Código MySQL:
Ver original
  1. #1242 - Subquery returns more than 1 row

si existe alguna otra manera de lograrlo fabor ayudarle....
  #2 (permalink)  
Antiguo 09/08/2011, 11:24
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Problemas con SELECT CONCAT en subconsulta

Hola core_flx_core:

El error es porque la subconsulta que estás armando regresa más de un registro, por lo tanto no puede ser utilizada en el select... no sé por qué motivo estás haciendo una subconsulta, si a final de cuentas ya estás haciendo la unión entre tus tablas descripción y factura entonces podrías simplemente hacerlo así:


Código MySQL:
Ver original
  1. SELECT d.factura_idfactura AS factura, f.rut, f.empresa, f.glosa, f.fecha,
  2. d.porcentaje, d.monto ,  CONCAT ('http://sitio.com/img/archivo/', f.archivo) archivo
  3. FROM descripcion d INNER JOIN factura f ON
  4. d.iddescripcion=d.iddescripcion AND d.factura_idfactura=f.idfactura

Si esto no te funciona postea la estructura de tus tablas y pon algunos datos de ejemplo, para tratar de encontrar alguna otra manera de obtener la salida que necesitas.

Saludos
Leo.
  #3 (permalink)  
Antiguo 10/08/2011, 14:23
 
Fecha de Ingreso: mayo-2011
Mensajes: 15
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Problemas con SELECT CONCAT en subconsulta

Cita:
Iniciado por leonardo_josue Ver Mensaje
Hola core_flx_core:

El error es porque la subconsulta que estás armando regresa más de un registro, por lo tanto no puede ser utilizada en el select... no sé por qué motivo estás haciendo una subconsulta, si a final de cuentas ya estás haciendo la unión entre tus tablas descripción y factura entonces podrías simplemente hacerlo así:


Código MySQL:
Ver original
  1. SELECT d.factura_idfactura AS factura, f.rut, f.empresa, f.glosa, f.fecha,
  2. d.porcentaje, d.monto ,  CONCAT ('http://sitio.com/img/archivo/', f.archivo) archivo
  3. FROM descripcion d INNER JOIN factura f ON
  4. d.iddescripcion=d.iddescripcion AND d.factura_idfactura=f.idfactura

Si esto no te funciona postea la estructura de tus tablas y pon algunos datos de ejemplo, para tratar de encontrar alguna otra manera de obtener la salida que necesitas.

Saludos
Leo.
GRACIAS POR RESPONDER Y AYUDAR!!!


efectvamente me funciono, tu consulta funca de maravillas, pero ahora va el otro problema

como puedo agregar mas campos y mas tablas asociadas a la tabla DESCRIPCION??


Código MySQL:
Ver original
  1. SELECT d.factura_idfactura AS factura, f.rut, f.empresa, f.glosa, f.fecha,  d.porcentaje, d.monto ,  m.titulo as marca, c.titulo as canal, cu.titulo as cuenta, t.titulo AS tipo,
  2.  
  3. CONCAT ('http://sitio.com/img/archivo/', f.archivo) archivo
  4.  
  5.     FROM descripcion d, marca m , canal c, cuenta cu, tipo t INNER JOIN factura f ON   d.iddescripcion=d.iddescripcion AND d.factura_idfactura=f.idfactura AND d.marca_idmarca=m.idmarca AND d.canal_idcanal=c.idcanal AND d.cuenta_idcuenta=cu.idcuenta AND d.tipo_idtipo=t.idtipo

para obtener el mismo resultado?????


si necesitas mas datos solo pidemelos, gracias por ayudar, pasa que no manejo mucho el INNER JOIN
  #4 (permalink)  
Antiguo 10/08/2011, 14:55
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Problemas con SELECT CONCAT en subconsulta

Hola core_flx_core:

Por el tenor de tus mensajes creo que no tienes muchos conocimientos de SQL, por lo tanto sería recomendable que leas cualquier manual para principiantes para que tengas al menos nociones del lenguaje, pues de lo contrario será muy difícil que puedas crear consultas complejas.

También podrías haberle preguntado a SAN GOOGLE acerca de la sintaxis para los JOIN's, casi siempre tiene la respuesta a tus problemas

Por lo pronto te comenta que tu puedes unir la cantidad de tablas que quieras en tus consultas, utilizando el JOIN correspondiente, si no sabes los tipos de JOIN que existen checa la liga de Wikipedia

La sintaxis para los inner join sería más o menos así.

Código:
Select T1.Campos, T2.Campos, T3.Campos ....... Tn.Campo FROM Tabla1 T1 
INNER JOIN Tabla2 ON T1.Campo = T2.Campo
LEFT JOIN Tabla3 ON T1.Campo = T3.Campo
.......
RIGTH JOIN Tablan Tn on T1.Campo = Tn.Campo

en el select puedes poner cualquier campo de las tablas seleccionadas y la condición ON todos aquellos campos que formen parte de la lógica para unir las tablas, generalmente se refiere a llaves foráneas.

Saludos
Leo.

Etiquetas: concat, 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 16:31.