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

Seleccionar contenido de 3 tablas

Estas en el tema de Seleccionar contenido de 3 tablas en el foro de Mysql en Foros del Web. Hola, De una query de 3 tablas necesito obtener el contenido de las tablas NOTICIAS y MULTIMEDIAS que se encuentren relacionadas por la tabla NOTICIAS-MEDIA. ...
  #1 (permalink)  
Antiguo 30/03/2015, 20:45
Ktulu
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Seleccionar contenido de 3 tablas

Hola,

De una query de 3 tablas necesito obtener el contenido de las tablas NOTICIAS y MULTIMEDIAS que se encuentren relacionadas por la tabla NOTICIAS-MEDIA.

Tabla NOTICIAS:
  • id
  • contenido
Tabla NOTICIAS-MEDIA(relación)
  • id
  • id_noticia (FK: noticias.id)
  • id_multimedia (FK: multimedias.id)
Tabla MULTIMEDIAS
  • id
  • archivo

El problema es que los resultados aparentemente estan siendo agrupados por MULTIMEDIAS y, en aquellos casos donde una noticia posee mas de 2 relaciones multimedias, recibo 2 registros de noticias similares (ya que difieren en el campo multimedia).

Es posible realizar la consulta de forma tal que sólo traiga un registro correspondiente a la noticia con la primer relación multimedia?

Cabe aclarar que deseo obtener también aquellas noticias que NO POSEEN RELACION.

De momento la consulta realizada tiene el siguiente formato:
Código MySQL:
Ver original
  1. SELECT `noticias`.`id`, `noticias`.`titulo`, `noticias`.`tags`, `noticias`.`fecha`, `noticias`.`url`, `noticias`.`resumen`
  2. FROM `noticias`
  3. JOIN `noticias_media` ON `noticias_media`.`id_noticia` = `noticias`.`id`
  4. JOIN `multimedias` ON `multimedias`.`id` = `noticias_media`.`id_media`
  5. ORDER BY `noticias`.`id` DESC"

Gracias de antemano!
  #2 (permalink)  
Antiguo 31/03/2015, 08:29
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Seleccionar contenido de 3 tablas

si es posible nada mas traer una de multimedias, pero cual seria? la mas reciente(por campo fecha)? O alguna con otra consideracion???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 31/03/2015, 13:02
Ktulu
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Seleccionar contenido de 3 tablas

Cita:
Iniciado por Libras Ver Mensaje
si es posible nada mas traer una de multimedias, pero cual seria? la mas reciente(por campo fecha)? O alguna con otra consideracion???
Gracias por responder.

En realidad no lo habia pensado, pero en la tabla MULTIMEDIAS existe un campo llamado 'tipo' donde especifico que clase de archivo es (video, imagen, archivo).

Lo ideal seria que existiendo un video sea prioritario ante una imagen, caso contrario traería una imagen RANDOM que corresponda a la relación.

De no ser posible, simplemente desearía capturar la imagen que se encuentre en primer posición de relación, es decir donde el ID de NOTICIAS-MEDIA sea menor.

Saludos y gracias nuevamente por responder!
  #4 (permalink)  
Antiguo 31/03/2015, 13:04
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Seleccionar contenido de 3 tablas

un ejemplo de tus datos ayudaria mucho :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 31/03/2015, 13:47
Ktulu
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Seleccionar contenido de 3 tablas

Por supuesto, voy a omitir campos para no hacer tediosa la lectura:

NOTICIAS
  • ID= 2
  • TITULO = 'Noticia de Deportes'
  • CUERPO = 'Contenido de la Noticia de Deportes'

MULTIMEDIAS
  • ID= 45
  • ARCHIVO = 'sample-image.jpg'
  • TIPO = 'imagenes'
  • ID= 48
  • ARCHIVO = 'https://www.youtube.com/watch?v=dIhVJnYaRX4'
  • TIPO = 'videos'
  • ID= 64
  • ARCHIVO = 'avatar-image.jpg'
  • TIPO = 'imagenes'

NOTICIAS-MEDIA
  • ID= 78
  • ID_NOTICIA= 2
  • ID_MULTIMEDIA = 45
  • EPIGRAFE= 'Imagen sample'
  • ID= 79
  • ID_NOTICIA= 2
  • ID_MULTIMEDIA = 48
  • EPIGRAFE= 'Video Steve Ray Vaughn'
  • ID= 80
  • ID_NOTICIA= 2
  • ID_MULTIMEDIA = 64
  • EPIGRAFE= 'Avatar de Usuario'

Espero que te sirva, Gracias!

Etiquetas: campo, contenido, fecha, registro, select, tabla, tablas
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 20:34.