[Php-avanzado] Consulta entre dos tablas
Silverzero
silverzero.52 en gmail.com
Dom Oct 3 23:55:35 ART 2010
Hola Cristian!
Gracias por las respuestas! Voy a probar tus opciones y las anteriores
también, ya que desde el viernes no toco la compu! jee
Después te cuento como me fué.
Yo también utilizo el timestamp pero solo para cuando el nombre de la imagen
es repetida.
Con respecto a que lo puse de tipo TEXT, es porque esa tabla la hice para
guardar cualquier tipo de data adjunta a la publicacion, ya sea, archivos en
general, imágenes o videos (el código para insertar), y cómo los códigos son
medios largos, los puse text, porque creo que con un varchar no me
alcanza...
Saludos!!
2010/10/3 Cristian Nimes <cjnimes en yahoo.com.ar>
> Hola gente!
> Envié este mensaje el viernes, pero recién veo que no aparece publicado en
> la lista, así que lo mando de nuevo. Me debo haber equivocado al enviarlo,
> igual por las dudas pido disculpas si alguien lo recibe por duplicado!
> Entonces, ahí va:
>
> Yo una vez resolví una situación parecida con una consulta que para tus
> tablas sería así:
> SELECT news.*, MIN(data.ruta) AS img
> FROM news LEFT JOIN DATA ON news.id = data.id_news AND data.tipo = 'img'
> GROUP BY news.id
>
> Pero para poder usarla es necesario tener en cuenta:
> - No se puede incluir el campo data.id en el select, ya que no
> necesariamente va a coincidir con el id del campo ruta obtenido (si
> quisieras obtener el id, no queda otra que usar una subconsulta). Por suerte
> yo no lo precisaba :)
> - En mi caso, el nombre de los archivos era el timestamp del momento en que
> fueron cargados en el sistema (por ejemplo 1285979244.jpg). De esta forma
> con el paso del tiempo, siempre se va a obtener la misma imagen. En el caso
> de que los nombres de archivos fueran alfanuméricos, si por ejemplo hoy
> tenés casa.jpg y mañana para la misma publicación se agrega auto.jpg,
> entonces va a cambiar la foto mostrada.
>
> Y la variante con subconsulta podría ser algo así, mostrando la foto con el
> menor id:
>
> SELECT news.id, news.tit, data.id, data.ruta
> FROM news
> LEFT JOIN DATA
> ON data.id_news = news.id
> AND data.id = (SELECT MIN(id) FROM DATA WHERE id_news = news.id AND
> data.tipo = 'img')
> ORDER BY news.fecha DESC, news.id DESC
>
> Espero que alguna te sirva. Saludos!
> Cristian.
>
> PD: me parece un poco exagerado usar un campo TEXT para guardar el nombre
> del archivo ;)
>
>
>
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
--
Carolina Derromediz
Cel. +54 223 5301599
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20101003/a3d7946c/attachment.htm
Más información sobre la lista de distribución Php-avanzado