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

armar un select para levantar elementos de 2 tablas y unirlos

Estas en el tema de armar un select para levantar elementos de 2 tablas y unirlos en el foro de Mysql en Foros del Web. Cuento con 2 tablas, una llamada categoria y otra llamada diseno, la tabla categoria tiene 2 campos: idCategoria y nombre la tabla diseno tiene 5 ...
  #1 (permalink)  
Antiguo 03/06/2007, 04:06
 
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 46
Antigüedad: 17 años, 6 meses
Puntos: 1
armar un select para levantar elementos de 2 tablas y unirlos

Cuento con 2 tablas, una llamada categoria y otra llamada diseno,

la tabla categoria tiene 2 campos: idCategoria y nombre
la tabla diseno tiene 5 campos: idDiseno, idCategoria, url, nombre, URLimagen

Por cada categoria hay una cantidad X de disenos que pertenecen a ella.

Lo que quiero lograr es mostrar en 1 pagina los nombres de las categorias y al lado de los mismos la imagen de un diseño cualkiera (por ej el 1o) que pertenezca a dicha categoria.

No se si es que ando un poco mareado o q el sql no se me da muy bien pero no logro conseguirlo. He levantado cualquier tipo de tuplas pero no logro lo que busco. Hallé por alli la posibilidad de usar la funcion FIRST que desconocia pero no pude lograrlo.

Con la estructura de tablas q explique antes, quisiera q mi consulta me devuelva algo como lo siguiente:

cat.nombre | diseno.URLIMAGEN

animales | '/miservidor/animales/diseno001.jpg'
infantiles | '/miservidor/infantiles/diseno001.jpg'
navidad | '/miservidor/navidad/navidad001.jpg'

Gracias.

PD: Intentando resolverlo en un momento el motor de SQL me dijo q no tiene aún implementada la posibilidad de utilizar una subconsulta y la funcion LIMIT simultaneamente, lo cual me sorprendio de sobremanera. Me dio dicho error al ejecutar algo como esto:

SELECT D.imagen, C.categoria
FROM diseno D, categoria C
WHERE D.idCategoria = C.idCategoria
AND D.idDiseno IN (SELECT * FROM diseno LIMIT 1)

MySQL 5.0.16-nt ha dicho:
#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

Última edición por chelix; 03/06/2007 a las 19:23 Razón: correciones en el planteo del problema para lograr un mejor entendimiento del mismo y alguna cosilla ortografica
  #2 (permalink)  
Antiguo 03/06/2007, 21:23
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: armar un select para levantar elementos de 2 tablas y unirlos

¿Y ya intentaste hacer lo que te dice??? o sea, cambiar la versión de MySQL
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 03/06/2007, 22:10
 
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 46
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: armar un select para levantar elementos de 2 tablas y unirlos

No lo habia pensado por el cambio que eso puede suponer y los problemas que puede traer una migracion de ese tipo, ademas la version de mysql es la 5.0. Todavia no ha salido un release estandarizado de la 6. Es por eso que me sorprendio tanto que no aceptara la sentencia.

Es sabido el potencial que tiene el lenguaje SQL, no creo que sea necesario un cambio así, sino solo armar una sentencia que logre lo q busco que tengo total seguridad se puede lograr y asi evitarme nuevos y hasta capaz mas complicados problemas.

Gracias por la sugerencia BrujoNic, si pasa mucho tiempo y no puedo resolverlo no tendré mas remedio que considerarlo pero por ahora si tu o algun otro forista tiene alguna sugerencia seria lo ideal.
  #4 (permalink)  
Antiguo 03/06/2007, 23:43
 
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 46
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: armar un select para levantar elementos de 2 tablas y unirlos

Bueno al final lo termine solucionando desde el codigo PHP.

jeje Victoria una vez mas sobre estas malditas máquinas!
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:20.