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

Unir registros de un join a un campo

Estas en el tema de Unir registros de un join a un campo en el foro de Bases de Datos General en Foros del Web. Hola! No sé si el título es lo más apropiado, pero lo que necesito es lo siguiente: Estructura de BD (ejemplo): contenidos ---------- id_contenido(auto) titulo ...
  #1 (permalink)  
Antiguo 08/03/2006, 10:12
Avatar de Hereje  
Fecha de Ingreso: junio-2002
Ubicación: Córdoba, Argentina
Mensajes: 439
Antigüedad: 21 años, 10 meses
Puntos: 2
Unir registros de un join a un campo

Hola!

No sé si el título es lo más apropiado, pero lo que necesito es lo siguiente:

Estructura de BD (ejemplo):

contenidos
----------
id_contenido(auto)
titulo

categorias
---------
id_categoria(auto)
nombre

contenidos_categorias
---------------------
id_contenido(n)
id_categoria(n)

BD: MySql

¿Cómo hago para consultar un contenido y que éste me regrese, ademas de sus campos, los nombres de las categorias a la que pertenece? Todo esto en una sola consulta por supuesto.

Espero sea posible!

Muchas gracias y saludos.
__________________
Sergio
  #2 (permalink)  
Antiguo 08/03/2006, 10:38
Avatar de haron  
Fecha de Ingreso: febrero-2004
Ubicación: Cádiz (refinitivo)
Mensajes: 632
Antigüedad: 20 años, 2 meses
Puntos: 3
lo puedes hacer asi:
Código:
select
  con.id_contenido,
  con.titulo,
  cat.nombre
from contenidos as con
inner join contenidos_categorias as con_cat
  on con_cat.id_contenido = con.id_contenido
inner join categorias cat
  on cat.id_categoria = con_cat.id_categoria
order by con.id_contenido, cat.nombre
te mostrara todos los contenidos y las categorias a las que pertenece.

puedes usar la funcion "group_concat" para mostrar las categorias separadas por comas:
Código:
select
  con.id_contenido,
  con.titulo,
  group_concat(cat.nombre) as categorias
from contenidos as con
inner join contenidos_categorias as con_cat
  on con_cat.id_contenido = con.id_contenido
inner join categorias cat
  on cat.id_categoria = con_cat.id_categoria
group by con.id_contenido
order by con.id_contenido
__________________
Si ocurre algo importante, estamos afuera fumándonos unos cigarritos.
  #3 (permalink)  
Antiguo 08/03/2006, 13:07
Avatar de Hereje  
Fecha de Ingreso: junio-2002
Ubicación: Córdoba, Argentina
Mensajes: 439
Antigüedad: 21 años, 10 meses
Puntos: 2
Lo segundo es lo que queria, gracias haron por compartir tu conocimiento!!

Saludos desde Argentina!
__________________
Sergio
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 15:40.