![]() |
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 |
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. |
Muchas gracias, sobre todo por la explicación tan detallada. Voy a probar de inmediato. Gracias de nuevo Un saludo Antonio Cainzos |
| La zona horaria es GMT -6. Ahora son las 08:45. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.