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

Campo con valores separados por comas

Estas en el tema de Campo con valores separados por comas en el foro de Bases de Datos General en Foros del Web. Hola a todos, a ver si alguien puede ayudarme. Tengo una base de datos access con dos tablas (Ficha y Opciones). En uno de los ...
  #1 (permalink)  
Antiguo 10/10/2006, 05:35
 
Fecha de Ingreso: julio-2006
Mensajes: 10
Antigüedad: 18 años, 3 meses
Puntos: 0
Campo con valores separados por comas

Hola a todos, a ver si alguien puede ayudarme.

Tengo una base de datos access con dos tablas (Ficha y Opciones).
En uno de los campos de la tabla Ficha (Ficha.Opciones) recoge los valores de la tabla Opciones guardando los ID's separado por comas, es decir, 1,3,4,7...
La tabla opciones tiene los campos: IdOpciones, descripcion.
Lo que necesito es que al ver la página detalle de un registro de Ficha me muestre como campo opciones: descripcion1, descripcion3, descripcion4, descripcion7.

¿Alguna pista de lo que debo hacer?
No se si está muy bien explicado. Si no se entiende intento hacerlo mejor.

Gracias anticipadas.

Un saludo,
Antonio Cainzos
  #2 (permalink)  
Antiguo 11/10/2006, 05:02
Avatar de MACGREGOR  
Fecha de Ingreso: enero-2005
Mensajes: 89
Antigüedad: 19 años, 10 meses
Puntos: 0
Debes eliminar el campo Ficha.Opciones de la tabla ficha.

Crea una tabla que se llame por ejemplo Rel_ficha_op en la que guardes la relación que existe entre la ficha y las opciones guarda los identificadores de las dos tablas en esta nueva.

ejemplo:
Tabla Ficha
id_F:1 (resto campos)
id_F:2 (resto campos)
id_F:3 (resto campos)
id_F:4 (resto campos)
id_F:5 (resto campos)
id_F:6 (resto campos)
..............................

Tabla Rel_ficha_op
id_F:1 id_op:1
id_F:1 id_op:3
id_F:1 id_op:4
id_F:1 id_op:7
id_F:2 id_op:2
id_F:2 id_op:5
..............................

Tabla Opciones:
id_op:1 desc:"descripción 1"
id_op:2 desc:"descripción 2"
id_op:3 desc:"descripción 3"
id_op:4 desc:"descripción 4"
id_op:5 desc:"descripción 5"
id_op:6 desc:"descripción 6"
..............................

De esta manera podrás cruzar con una consulta la tabla ficha y la tabla opciones y hacer lo que quieres.
Select FI.id_F, FI.(resto de campos), OP.id_op, OP.desc
from ficha as FI, opciones as OP, Rel_ficha_op as REL
where FI.id_F=REL.id_F and REL.id_op=OP.id_op
and FI.id_F <= 2 (suponiendo que queremos las 2 primeras fichas)

El resultado (siguiendo como ejemplo los valores anteriores)

id_F:1 (resto campos) id_op:1 desc:"descripción 1"
id_F:1 (resto campos) id_op:3 desc:"descripción 3"
id_F:1 (resto campos) id_op:4 desc:"descripción 4"
id_F:1 (resto campos) id_op:7 desc:"descripción 7"
id_F:2 (resto campos) id_op:2 desc:"descripción 2"
id_F:2 (resto campos) id_op:5 desc:"descripción 5"


Ahora ya tienes lo que quieres, si solo quieres una línea para cada ficha puedes coger esta consulta sql meterla en la clausula from como si fuera una tabla "from (toda la consulta anterior) as RES1..." y realizar una consulta concatenando los campos descripción.
  #3 (permalink)  
Antiguo 11/10/2006, 05:53
 
Fecha de Ingreso: julio-2006
Mensajes: 10
Antigüedad: 18 años, 3 meses
Puntos: 0
Muchas gracias, sobre todo por la explicación tan detallada. Voy a probar de inmediato.
Gracias de nuevo

Un saludo
Antonio Cainzos
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 14:21.